You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "D.R." <d....@googlemail.com> on 2013/05/22 23:13:21 UTC

dwr java chat demo in t5

Hi @all,

i was suprised that t5 does not support reverse ajax ;-(

googleing around, the only thing mentioned often enough is dwr and i
ended here:
http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Implement-chat-function-td5606481.html

Actually, i want to do the same thing as the threadstarter:
A loggedin user can start a one-to-one chat with an admin. The admin can
handle multiple chats at the same time...

I don't really know if dwr is what i really want and if dwr is the best
thing recommended? Or are better solutions out there?

So i've tried to integrate the Java Chat with the latest dwr-RC3 from
dwr first, but only with partial success. My implementation does not
have the same behaviour like the demo:
http://directwebremoting.org/dwr-demo/reverseajax/java-chat.html

I've put the HTML source (i had to replace the div with an ul) and the
Javascript source into a .tml and the Java source into a corresponding
java class into my t5 jumpstart project.

GOOD:
i can see the clients polling:
...
[INFO] log.accessLog Incoming request: /dwr/call/plainpoll/ReverseAjax.dwr
[INFO] log.accessLog Incoming request: /dwr/call/plainpoll/ReverseAjax.dwr
[INFO] log.accessLog Incoming request: /dwr/call/plainpoll/ReverseAjax.dwr
[INFO] log.accessLog Incoming request: /dwr/call/plainpoll/ReverseAjax.dwr
...

GOOD:
the addMessage() Method is called when the button is pressed
ok, this is default behaviour

GOOD:
with opera i first get the expected behaviour:
open page in opera and firefox, type "opera1" in opera and the message
will be displayed in firefox and opera correctly.

NOT GOOD:
Then i type an "opera2" in opera and in opera i see the correct output:
<ul id="chatlog">
<li>opera2</li>
<li>opera1</li>
</ul>
But in firefox, the first message did not disapear, i get:
<ul id="chatlog">
<li>opera1</li>
<li>opera2</li>
<li>opera1</li>
</ul>

BAD:
now i type "firefox" in firefox and i get in opera:
<ul id="chatlog">
<li>opera2</li>
<li>opera1</li>
<li>firefox</li>
<li>opera2</li>
<li>opera1</li>
</ul>
In the firefox browser nothing happens... the textfield is not reset and
i still have:
<li>opera1</li>
<li>opera2</li>
<li>opera1</li>

BAD:
when i now type an "opera3" in opera, i get in opera:
<ul id="chatlog">
<li>opera3</li>
<li>firefox</li>
<li>opera2</li>
<li>opera1</li>
</ul>
initially what i did really expected, but before was the wrong output,
which is now replaced with the correct output :-)
In firefox still everythig is wrong:
<ul id="chatlog">
<li>opera1</li>
<li>opera2</li>
<li>opera1</li>
<li>opera3</li>
<li>firefox</li>
<li>opera2</li>
<li>opera1</li>
</ul>

VERY BAD:
i get a lot of:
2013-05-22 22:28:47.976:WARN::header full: java.lang.NullPointerException
and:
2013-05-22 22:28:47.976:WARN::header full:
java.lang.IllegalStateException: last?
and i don't know anything about these message, from where they come and
what they mean and how i can trace them

Also with chrome i am facing similar issues to firefox.

I know the most questions will come, when i want to access
tapestryservices later, but when i get these strange behaviour i don't
know if dwr is the right thing when i don't get this simple example running.

The thing is that i don't really know what the clients are calling. They
call the dwr-servlet via the generated .js:
"return dwr.engine._execute(p._path, 'MyChat', 'addMessage', arguments);"
but how does dwr response? In the end i must access a t5 service, so the
response must be filled with data from the t5 service...
At this point i can not imagine how i can encapsulate dwr with t5 and
let dwr interact with t5.
Informations and examples are more than rare :-(
A reverse ajax chat-webapp is not the most extreme case i can imagine :-)

Anybody out there with some suggestions?


Kind regards
David

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: dwr java chat demo in t5

Posted by Lance Java <la...@googlemail.com>.
The supported browsers section on the atmosphere page can be ignored as
this refers to atmosphere.js which is not used by the cometd integration.
Only the supported servers section is relevant.

Best to check the cometd docs for supported browsers at www.cometd.org

Re: dwr java chat demo in t5

Posted by Lance Java <la...@googlemail.com>.
You would do this by the topic (eg: "/chat/user1"). You can add custom
Authorizers for topic security.

Re: dwr java chat demo in t5

Posted by "D.R." <d....@googlemail.com>.
Lance,

thanks again, i will check the docs.
Seems that longpolling or jsonp is supported best by servers and browsers.

The first question i will have if there is a kind of client
identification built in. The chat messages must be propageted to the
correct users and not to all users. Is a client identification part of
the project or does this completely depends on my own businesslogic?


Kind regards
David

On 23.05.2013 09:44, Lance Java wrote:
> tapestry-cometd is built using the cometd integration in atmosphere.
> Atmosphere supports a variety of push mechanisms including WebSockets,
> Server Side Events (SSE), Long-Polling, HTTP Streaming (Forever frame) and
> JSONP.
>
> Out of the box, tapestry-cometd is configured to use
> org.cometd.websocket.server.WebSocketTransport but this can be configured
> in your AppModule (
> https://github.com/uklance/tapestry-cometd/blob/master/src/main/java/org/lazan/t5/cometd/services/CometdModule.java#L54
> )
>
> The supported servers and browsers are listed here:
> https://github.com/Atmosphere/atmosphere/wiki/Supported-WebServers-and-Browsers
>
> Some more docs here
> https://github.com/Atmosphere/atmosphere
> https://github.com/Atmosphere/atmosphere/wiki/Getting-started-with-Cometd
> https://github.com/uklance/tapestry-cometd/wiki/Configuring-the-CometD-Servlet
> http://cometd.org/
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: dwr java chat demo in t5

Posted by Lance Java <la...@googlemail.com>.
tapestry-cometd is built using the cometd integration in atmosphere.
Atmosphere supports a variety of push mechanisms including WebSockets,
Server Side Events (SSE), Long-Polling, HTTP Streaming (Forever frame) and
JSONP.

Out of the box, tapestry-cometd is configured to use
org.cometd.websocket.server.WebSocketTransport but this can be configured
in your AppModule (
https://github.com/uklance/tapestry-cometd/blob/master/src/main/java/org/lazan/t5/cometd/services/CometdModule.java#L54
)

The supported servers and browsers are listed here:
https://github.com/Atmosphere/atmosphere/wiki/Supported-WebServers-and-Browsers

Some more docs here
https://github.com/Atmosphere/atmosphere
https://github.com/Atmosphere/atmosphere/wiki/Getting-started-with-Cometd
https://github.com/uklance/tapestry-cometd/wiki/Configuring-the-CometD-Servlet
http://cometd.org/

Re: dwr java chat demo in t5

Posted by "D.R." <d....@googlemail.com>.
Hi,

Lance, wow, thank you for pointing me to your project! Integration is
more than easy, your example works outofthebox in my browsers. I had to
install jetty7 support, seems that jetty6 does not support websockets.

What are the disadvantages of websockets compared to ajax? I think not
all browsers support websockets? Especially the older versions?
But i think that all the major browsers support that in their latest
versions?

I did read that the t5 team want to integrate push, but did not see how
this is scheduled.
So i want to go with your project.

Thanks again, Lance!


Kind regards
David

On 22.05.2013 23:37, Lance Java wrote:
> Hi, as a previous dwr committer myself, I was keen to provide dwr reverse
> ajax / tapestry integration.
>
> After speaking to the dwr team, I found that the push mechanism in dwr was
> not considered bulletproof and was directed towards cometd
>
> For this reason, I have created tapestry-cometd, a push library for
> tapestry that requires zero javascript
> https://github.com/uklance/tapestry-cometd
>
> You must be aware that the tapestry team currently have push as a high
> priority feature for the next release. So watch this space for an out of
> the box solution.
>
> In the meantime, I'll be happy to help with a tapestry - cometd solution .
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: dwr java chat demo in t5

Posted by Jon Williams <wi...@gmail.com>.
Never mind Lance,
Seems I have an error in my configuration.
I think I'll be able to figure it out myself.

thanks anyhow
Jon




On Wed, May 22, 2013 at 6:10 PM, Jon Williams
<wi...@gmail.com>wrote:

> Hi Lance,
>
> This email thread caught my eye so I went and got your example app.
> It seems to be running, in a fashion. However,
> I'm seeing NPE's at runtime...
>
> 1 caveat, maybe pertinent. I had to add a dependency to the pom to get a
> good build...
>         <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-server</artifactId>
>             <version>7.6.4.v20120524</version>
>         </dependency>
>
> If you've got a moment, maybe you could take a look.
> Quite interested in using your project.
> thanks
> Jon
>
> Here my console output...
> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
> -Dmaven.home=/usr/share/java/maven-3.0.4
> -Dclassworlds.conf=/usr/share/java/maven-3.0.4/bin/m2.conf
> -Didea.launcher.port=7532
> "-Didea.launcher.bin.path=/Applications/jetbrains2013/IntelliJ IDEA
> 12.app/bin" -Dfile.encoding=UTF-8 -classpath
> "/usr/share/java/maven-3.0.4/boot/plexus-classworlds-2.4.jar:/Applications/jetbrains2013/IntelliJ
> IDEA 12.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain
> org.codehaus.classworlds.Launcher --fail-fast --strict-checksums
> org.mortbay.jetty:maven-jetty-plugin:6.1.16:run -P jetty-hightide
> [INFO] Scanning for projects...
> [INFO]
>
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building tapestry-cometd-demo Tapestry 5 Application 1.0-SNAPSHOT
> [INFO]
> ------------------------------------------------------------------------
> [INFO]
> [INFO] >>> maven-jetty-plugin:6.1.16:run (default-cli) @
> tapestry-cometd-demo >>>
> [INFO]
> [INFO] --- maven-resources-plugin:2.5:resources (default-resources) @
> tapestry-cometd-demo ---
> [debug] execute contextualize
> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] Copying 8 resources
> [INFO]
> [INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @
> tapestry-cometd-demo ---
> [INFO] Nothing to compile - all classes are up to date
> [INFO]
> [INFO] --- maven-resources-plugin:2.5:testResources
> (default-testResources) @ tapestry-cometd-demo ---
> [debug] execute contextualize
> [WARNING] Using platform encoding (UTF-8 actually) to copy filtered
> resources, i.e. build is platform dependent!
> [INFO] Copying 1 resource
> [INFO]
> [INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @
> tapestry-cometd-demo ---
> [INFO] Nothing to compile - all classes are up to date
> [INFO]
> [INFO] <<< maven-jetty-plugin:6.1.16:run (default-cli) @
> tapestry-cometd-demo <<<
> [INFO]
> [INFO] --- maven-jetty-plugin:6.1.16:run (default-cli) @
> tapestry-cometd-demo ---
> [INFO] Configuring Jetty for project: tapestry-cometd-demo Tapestry 5
> Application
> [INFO] Webapp source directory =
> /Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp
> [INFO] Reload Mechanic: automatic
> [INFO] web.xml file =
> /Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp/WEB-INF/web.xml
> [INFO] Classes =
> /Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/target/classes
> 2013-05-22 18:02:35.124::INFO:  Logging to STDERR via
> org.mortbay.log.StdErrLog
> [INFO] Context path = /tapestry-cometd-demo
> [INFO] Tmp directory =  determined at runtime
> [INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml
> [INFO] Web overrides =  none
> [INFO] Webapp directory =
> /Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp
> [INFO] Starting jetty 6.1.16 ...
> 2013-05-22 18:02:35.211::INFO:  jetty-6.1.16
> 2013-05-22 18:02:35.327::INFO:  No Transaction manager found - if your
> webapp requires one, please configure one.
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.ioc.services.TapestryIOCModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.json.services.JSONModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.lazan.t5.cometd.services.CometdModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.got5.tapestry5.jquery.services.JQueryModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.got5.tapestry5.jquery.services.js.JSModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.upload.services.UploadModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.TapestryModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.internal.services.InternalModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.assets.AssetsModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.apache.tapestry5.services.pageload.PageLoadModule
> [INFO] ioc.RegistryBuilder Adding module definition for class
> org.lazan.t5.cometddemo.services.AppModule
> [INFO] TapestryModule.ComponentClassResolver Registering cometd component
> library
> [INFO] TapestryModule.ComponentClassResolver Available pages (8):
>               (blank): org.lazan.t5.cometddemo.pages.Index
>                  Chat: org.lazan.t5.cometddemo.pages.Chat
>       ExceptionReport: org.apache.tapestry5.corelib.pages.ExceptionReport
>                 Index: org.lazan.t5.cometddemo.pages.Index
>           PageCatalog: org.apache.tapestry5.corelib.pages.PageCatalog
> PropertyDisplayBlocks:
> org.apache.tapestry5.corelib.pages.PropertyDisplayBlocks
>    PropertyEditBlocks:
> org.apache.tapestry5.corelib.pages.PropertyEditBlocks
>         ServiceStatus: org.apache.tapestry5.corelib.pages.ServiceStatus
>                Stocks: org.lazan.t5.cometddemo.pages.Stocks
>
> [INFO] TapestryModule.ComponentClassResolver Available components (80):
>                 ActionLink:
> org.apache.tapestry5.corelib.components.ActionLink
>                 AddRowLink:
> org.apache.tapestry5.corelib.components.AddRowLink
>               AjaxFormLoop:
> org.apache.tapestry5.corelib.components.AjaxFormLoop
>                     Alerts: org.apache.tapestry5.corelib.components.Alerts
>                        Any: org.apache.tapestry5.corelib.components.Any
>                BeanDisplay:
> org.apache.tapestry5.corelib.components.BeanDisplay
>               BeanEditForm:
> org.apache.tapestry5.corelib.components.BeanEditForm
>                 BeanEditor:
> org.apache.tapestry5.corelib.components.BeanEditor
>                   Checkbox:
> org.apache.tapestry5.corelib.components.Checkbox
>                  Checklist:
> org.apache.tapestry5.corelib.components.Checklist
>                  DateField:
> org.apache.tapestry5.corelib.components.DateField
>                   Delegate:
> org.apache.tapestry5.corelib.components.Delegate
>                    Doctype: org.apache.tapestry5.corelib.components.Doctype
>                    Dynamic: org.apache.tapestry5.corelib.components.Dynamic
>                      Error: org.apache.tapestry5.corelib.components.Error
>                     Errors: org.apache.tapestry5.corelib.components.Errors
>                  EventLink:
> org.apache.tapestry5.corelib.components.EventLink
>           ExceptionDisplay:
> org.apache.tapestry5.corelib.components.ExceptionDisplay
>                       Form: org.apache.tapestry5.corelib.components.Form
>               FormFragment:
> org.apache.tapestry5.corelib.components.FormFragment
>               FormInjector:
> org.apache.tapestry5.corelib.components.FormInjector
>                       Grid: org.apache.tapestry5.corelib.components.Grid
>                   GridCell:
> org.apache.tapestry5.corelib.components.GridCell
>                GridColumns:
> org.apache.tapestry5.corelib.components.GridColumns
>                  GridPager:
> org.apache.tapestry5.corelib.components.GridPager
>                   GridRows:
> org.apache.tapestry5.corelib.components.GridRows
>                     Hidden: org.apache.tapestry5.corelib.components.Hidden
>                         If: org.apache.tapestry5.corelib.components.If
>                      Label: org.apache.tapestry5.corelib.components.Label
>                     Layout: org.lazan.t5.cometddemo.components.Layout
>                 LinkSubmit:
> org.apache.tapestry5.corelib.components.LinkSubmit
>                       Loop: org.apache.tapestry5.corelib.components.Loop
>                     Output: org.apache.tapestry5.corelib.components.Output
>                  OutputRaw:
> org.apache.tapestry5.corelib.components.OutputRaw
>                   PageLink:
> org.apache.tapestry5.corelib.components.PageLink
>                    Palette: org.apache.tapestry5.corelib.components.Palette
>              PasswordField:
> org.apache.tapestry5.corelib.components.PasswordField
>         ProgressiveDisplay:
> org.apache.tapestry5.corelib.components.ProgressiveDisplay
>            PropertyDisplay:
> org.apache.tapestry5.corelib.components.PropertyDisplay
>             PropertyEditor:
> org.apache.tapestry5.corelib.components.PropertyEditor
>                      Radio: org.apache.tapestry5.corelib.components.Radio
>                 RadioGroup:
> org.apache.tapestry5.corelib.components.RadioGroup
>              RemoveRowLink:
> org.apache.tapestry5.corelib.components.RemoveRowLink
>               RenderObject:
> org.apache.tapestry5.corelib.components.RenderObject
>                     Select: org.apache.tapestry5.corelib.components.Select
>                     Submit: org.apache.tapestry5.corelib.components.Submit
>             SubmitNotifier:
> org.apache.tapestry5.corelib.components.SubmitNotifier
>                   TextArea:
> org.apache.tapestry5.corelib.components.TextArea
>                  TextField:
> org.apache.tapestry5.corelib.components.TextField
>                 TextOutput:
> org.apache.tapestry5.corelib.components.TextOutput
>                       Tree: org.apache.tapestry5.corelib.components.Tree
>                    Trigger: org.apache.tapestry5.corelib.components.Trigger
>                     Unless: org.apache.tapestry5.corelib.components.Unless
>                     Upload: org.apache.tapestry5.upload.components.Upload
>                       Zone: org.apache.tapestry5.corelib.components.Zone
>          cometd/PushTarget: org.lazan.t5.cometd.components.PushTarget
> jquery/AbstractJQueryTable:
> org.got5.tapestry5.jquery.components.AbstractJQueryTable
>       jquery/AbstractTable:
> org.got5.tapestry5.jquery.components.AbstractTable
>           jquery/Accordion: org.got5.tapestry5.jquery.components.Accordion
>          jquery/AjaxUpload: org.got5.tapestry5.jquery.components.AjaxUpload
>            jquery/Carousel: org.got5.tapestry5.jquery.components.Carousel
>        jquery/CarouselItem:
> org.got5.tapestry5.jquery.components.CarouselItem
>            jquery/Checkbox: org.got5.tapestry5.jquery.components.Checkbox
>           jquery/DataTable: org.got5.tapestry5.jquery.components.DataTable
>              jquery/Dialog: org.got5.tapestry5.jquery.components.Dialog
>      jquery/DialogAjaxLink:
> org.got5.tapestry5.jquery.components.DialogAjaxLink
>          jquery/DialogLink: org.got5.tapestry5.jquery.components.DialogLink
>           jquery/Draggable: org.got5.tapestry5.jquery.components.Draggable
>             jquery/Gallery: org.got5.tapestry5.jquery.components.Gallery
>         jquery/GridColumns:
> org.got5.tapestry5.jquery.components.GridColumns
>       jquery/InPlaceEditor:
> org.got5.tapestry5.jquery.components.InPlaceEditor
>             jquery/Palette: org.got5.tapestry5.jquery.components.Palette
>  jquery/ProgressiveDisplay:
> org.got5.tapestry5.jquery.components.ProgressiveDisplay
>         jquery/RangeSlider:
> org.got5.tapestry5.jquery.components.RangeSlider
>          jquery/ShowSource: org.got5.tapestry5.jquery.components.ShowSource
>              jquery/Slider: org.got5.tapestry5.jquery.components.Slider
>           jquery/Superfish: org.got5.tapestry5.jquery.components.Superfish
>                jquery/Tabs: org.got5.tapestry5.jquery.components.Tabs
>         jquery/TwitterView:
> org.got5.tapestry5.jquery.components.TwitterView
>  t5internal/InternalLayout:
> org.apache.tapestry5.internal.t5internal.components.InternalLayout
>
> [INFO] TapestryModule.ComponentClassResolver Available mixins (24):
>            Autocomplete: org.apache.tapestry5.corelib.mixins.Autocomplete
>             DiscardBody: org.apache.tapestry5.corelib.mixins.DiscardBody
>          FormFieldFocus: org.apache.tapestry5.corelib.mixins.FormFieldFocus
>                NotEmpty: org.apache.tapestry5.corelib.mixins.NotEmpty
>      OverrideFieldFocus:
> org.apache.tapestry5.corelib.mixins.OverrideFieldFocus
>          RenderClientId: org.apache.tapestry5.corelib.mixins.RenderClientId
>          RenderDisabled: org.apache.tapestry5.corelib.mixins.RenderDisabled
>         RenderInformals:
> org.apache.tapestry5.corelib.mixins.RenderInformals
>      RenderNotification:
> org.apache.tapestry5.corelib.mixins.RenderNotification
>         TriggerFragment:
> org.apache.tapestry5.corelib.mixins.TriggerFragment
>             ZoneRefresh: org.apache.tapestry5.corelib.mixins.ZoneRefresh
>     jquery/Autocomplete: org.got5.tapestry5.jquery.mixins.Autocomplete
>             jquery/Bind: org.got5.tapestry5.jquery.mixins.Bind
>           jquery/Button: org.got5.tapestry5.jquery.mixins.Button
> jquery/CustomDatepicker: org.got5.tapestry5.jquery.mixins.CustomDatepicker
>       jquery/CustomZone: org.got5.tapestry5.jquery.mixins.CustomZone
>             jquery/Mask: org.got5.tapestry5.jquery.mixins.Mask
>      jquery/Placeholder: org.got5.tapestry5.jquery.mixins.Placeholder
>           jquery/Reveal: org.got5.tapestry5.jquery.mixins.Reveal
>         jquery/Selector: org.got5.tapestry5.jquery.mixins.Selector
>          jquery/Tooltip: org.got5.tapestry5.jquery.mixins.Tooltip
>    jquery/ZoneDroppable: org.got5.tapestry5.jquery.mixins.ZoneDroppable
>      jquery/ZoneRefresh: org.got5.tapestry5.jquery.mixins.ZoneRefresh
>        jquery/ui/Widget: org.got5.tapestry5.jquery.mixins.ui.Widget
>
> [INFO] BayeuxServerImpl.328332828 logLevel=2
> [INFO] BayeuxServerImpl.328332828 org.atmosphere.useStream=false
> [INFO] tapestry5.TapestryFilter Startup status:
>
> Services:
>
>              ActionRenderResponseGenerator: DEFINED
>           AjaxComponentEventRequestHandler: DEFINED
>          AjaxComponentEventResultProcessor: DEFINED
>                   AjaxFormUpdateController: DEFINED
>                AjaxPartialResponseRenderer: DEFINED
>                       AjaxResponseRenderer: DEFINED
>                          AjaxUploadDecoder: DEFINED
>                               AlertManager: DEFINED
>                        ApplicationDefaults: REAL
>                         ApplicationGlobals: REAL
>                     ApplicationInitializer: REAL
>                    ApplicationStateManager: DEFINED
>  ApplicationStatePersistenceStrategySource: DEFINED
>                            AspectDecorator: VIRTUAL
>                        AssetBindingFactory: DEFINED
>                            AssetDispatcher: DEFINED
>                        AssetObjectProvider: REAL
>                       AssetPathConstructor: DEFINED
>                         AssetPathConverter: DEFINED
>                       AssetResourceLocator: DEFINED
>                                AssetSource: VIRTUAL
>                                Authorizers: VIRTUAL
>                              BaseURLSource: DEFINED
>                               BayeuxServer: REAL
>                    BeanBlockOverrideSource: DEFINED
>                            BeanBlockSource: DEFINED
>                            BeanModelSource: DEFINED
>                              BindingSource: DEFINED
>                               ChainBuilder: VIRTUAL
>                            ChannelIdSource: DEFINED
>                                ChatService: DEFINED
>                               ClassFactory: BUILTIN
>                           ClassNameLocator: REAL
>                 ClasspathAssetAliasManager: DEFINED
>                      ClasspathAssetFactory: DEFINED
>                      ClasspathURLConverter: REAL
>                      ClientBehaviorSupport: DEFINED
>                          ClientDataEncoder: DEFINED
>               ClientPersistentFieldStorage: DEFINED
>              ClientPersistentFieldStrategy: DEFINED
>                            ClientWhitelist: DEFINED
>                              CometdGlobals: VIRTUAL
>             CometdHttpServletRequestFilter: REAL
>                        ComponentClassCache: VIRTUAL
>                      ComponentClassFactory: DEFINED
>                     ComponentClassResolver: REAL
>              ComponentClassTransformWorker: DEFINED
>       ComponentClassesInvalidationEventHub: REAL
>                   ComponentDefaultProvider: DEFINED
>                  ComponentEventLinkEncoder: DEFINED
>              ComponentEventLinkTransformer: DEFINED
>               ComponentEventRequestHandler: DEFINED
>              ComponentEventResultProcessor: DEFINED
>           ComponentInstanceResultProcessor: DEFINED
>                ComponentInstantiatorSource: DEFINED
>                      ComponentJSONRenderer: VIRTUAL
>      ComponentMessagesInvalidationEventHub: DEFINED
>                    ComponentMessagesSource: DEFINED
>                       ComponentModelSource: DEFINED
>        ComponentPageElementResourcesSource: DEFINED
>                      ComponentProxyFactory: DEFINED
>                    ComponentRequestHandler: DEFINED
>           ComponentRequestSelectorAnalyzer: DEFINED
>                   ComponentResourceLocator: DEFINED
>                            ComponentSource: DEFINED
>                   ComponentTemplateLocator: DEFINED
>                    ComponentTemplateSource: DEFINED
>     ComponentTemplatesInvalidationEventHub: DEFINED
>                        CompressionAnalyzer: DEFINED
>                        ContentTypeAnalyzer: DEFINED
>                                    Context: DEFINED
>                        ContextAssetFactory: DEFINED
>                      ContextBindingFactory: DEFINED
>                         ContextPathEncoder: DEFINED
>                        ContextValueEncoder: DEFINED
>                                 CookieSink: DEFINED
>                               CookieSource: DEFINED
>                                    Cookies: DEFINED
>                           DataTypeAnalyzer: DEFINED
>                    DefaultDataTypeAnalyzer: DEFINED
>                     DefaultFileItemFactory: DEFINED
>               DefaultImplementationBuilder: VIRTUAL
>                          DeferredExecution: DEFINED
>                      DynamicTemplateParser: VIRTUAL
>                               EffectsParam: DEFINED
>                       EndOfRequestEventHub: REAL
>                                Environment: DEFINED
>                 EnvironmentalShadowBuilder: VIRTUAL
>                          ExceptionAnalyzer: DEFINED
>                           ExceptionTracker: DEFINED
>                            FactoryDefaults: REAL
>                      FieldTranslatorSource: DEFINED
>                     FieldValidationSupport: DEFINED
>                FieldValidatorDefaultSource: DEFINED
>                       FieldValidatorSource: DEFINED
>                                FormSupport: DEFINED
>                                  Heartbeat: DEFINED
>                   HiddenFieldLocationRules: DEFINED
>                         HttpServletRequest: DEFINED
>                  HttpServletRequestHandler: VIRTUAL
>                        HttpServletResponse: DEFINED
>                         IgnoredPathsFilter: DEFINED
>                          InjectionProvider: DEFINED
>      InternalComponentInvalidationEventHub: REAL
>                     InternalRequestGlobals: DEFINED
>                                  JSHandler: DEFINED
>                                  JSLocator: DEFINED
>                                  JSSupport: DEFINED
>             JavaScriptStackPathConstructor: DEFINED
>                      JavaScriptStackSource: DEFINED
>                          JavaScriptSupport: DEFINED
>                                LazyAdvisor: DEFINED
>                            LinkCreationHub: DEFINED
>                                 LinkSource: DEFINED
>                            LinkTransformer: DEFINED
>                         LocalizationSetter: DEFINED
>                           LocationRenderer: DEFINED
>                               LoggerSource: BUILTIN
>                             LoggingAdvisor: DEFINED
>                           LoggingDecorator: DEFINED
>                             MarkupRenderer: DEFINED
>                        MarkupWriterFactory: DEFINED
>                           MasterDispatcher: DEFINED
>                       MasterObjectProvider: REAL
>            MasterStackTraceElementAnalyzer: DEFINED
>                      MessageBindingFactory: DEFINED
>                            MetaDataLocator: DEFINED
>                                 MetaWorker: DEFINED
>                           MultipartDecoder: DEFINED
>            NullFieldStrategyBindingFactory: DEFINED
>                    NullFieldStrategySource: DEFINED
>                   NumericTranslatorSupport: DEFINED
>                             ObjectRenderer: DEFINED
>             PageActivationContextCollector: DEFINED
>                              PageActivator: DEFINED
>                    PageContentTypeAnalyzer: DEFINED
>                      PageDocumentGenerator: DEFINED
>                         PageElementFactory: DEFINED
>                                PageGlobals: DEFINED
>                                 PageLoader: DEFINED
>                         PageMarkupRenderer: DEFINED
>                       PageRenderLinkSource: DEFINED
>                  PageRenderLinkTransformer: DEFINED
>                            PageRenderQueue: DEFINED
>                   PageRenderRequestHandler: DEFINED
>                       PageResponseRenderer: DEFINED
>                                 PageSource: DEFINED
>                      PartialMarkupRenderer: DEFINED
>                           PeriodicExecutor: DEFINED
>                     PersistentFieldManager: DEFINED
>                           PersistentLocale: DEFINED
>                           PerthreadManager: BUILTIN
>                            PipelineBuilder: REAL
>                        PlasticProxyFactory: BUILTIN
>                         PropBindingFactory: DEFINED
>                       PropertiesFileParser: DEFINED
>                             PropertyAccess: VIRTUAL
>                      PropertyConduitSource: DEFINED
>                      PropertyShadowBuilder: VIRTUAL
>                                PushManager: REAL
>                        RegistryShutdownHub: BUILTIN
>                            RegistryStartup: REAL
>                              RenderSupport: DEFINED
>                              RenderTracker: DEFINED
>                                    Request: VIRTUAL
>                    RequestExceptionHandler: DEFINED
>                             RequestGlobals: DEFINED
>                             RequestHandler: DEFINED
>                           RequestPageCache: DEFINED
>                     RequestSecurityManager: DEFINED
>                      ResourceChangeTracker: DEFINED
>                    ResourceDigestGenerator: DEFINED
>                      ResourceDigestManager: DEFINED
>                          ResourceMinimizer: DEFINED
>                           ResourceStreamer: DEFINED
>                                   Response: VIRTUAL
>                ResponseCompressionAnalyzer: DEFINED
>                           ResponseRenderer: DEFINED
>                         SelectModelFactory: DEFINED
>                     SelectorBindingFactory: DEFINED
>                  ServiceActivityScoreboard: BUILTIN
>                     ServiceLifecycleSource: REAL
>                            ServiceOverride: REAL
>              ServletApplicationInitializer: REAL
> SessionApplicationStatePersistenceStrategy: DEFINED
>             SessionPersistedObjectAnalyzer: DEFINED
>                               StockService: DEFINED
>                            StrategyBuilder: VIRTUAL
>                   StreamableResourceSource: DEFINED
>                             StringInterner: DEFINED
>                      SubscriptionListeners: VIRTUAL
>                       SymbolBindingFactory: DEFINED
>                               SymbolSource: REAL
>                     TapestrySessionFactory: DEFINED
>                             TemplateParser: DEFINED
>                               ThreadLocale: DEFINED
>                               ThunkCreator: DEFINED
>                    TranslateBindingFactory: DEFINED
>                 TranslatorAlternatesSource: DEFINED
>                           TranslatorSource: DEFINED
>                                TypeCoercer: REAL
>                                 URLEncoder: DEFINED
>                          UpdateListenerHub: DEFINED
>                     ValidateBindingFactory: DEFINED
>              ValidationConstraintGenerator: DEFINED
>                 ValidationDecoratorFactory: DEFINED
>                             ValidatorMacro: DEFINED
>                         ValueEncoderSource: DEFINED
>                               WidgetParams: DEFINED
>                                         js: DEFINED
>
> 86.67% unrealized services (182/210)
>
> Application 'app' (version 1.0-SNAPSHOT) startup time: 228 ms to build IoC
> Registry, 1,051 ms overall.
>
>  ______                  __             ____
> /_  __/__ ____  ___ ___ / /_______ __  / __/
>  / / / _ `/ _ \/ -_|_-</ __/ __/ // / /__ \
> /_/  \_,_/ .__/\__/___/\__/_/  \_, / /____/
>         /_/                   /___/  5.3.3 (development mode)
>
>
> [INFO] Started Jetty Server
> 2013-05-22 18:02:36.808::INFO:  Started
> SelectChannelConnector@0.0.0.0:8080
> 2013-05-22 18:02:41.837::WARN:  /tapestry-cometd-demo/cometd
> java.lang.NullPointerException
>  at
> org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:225)
> at
> org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:361)
>  at
> org.cometd.websocket.server.WebSocketTransport.handle(WebSocketTransport.java:154)
> at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
>  at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown
> Source)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
>  at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>  at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>  at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>  at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
>  at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>  at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> 2013-05-22 18:02:42.635::WARN:  /tapestry-cometd-demo/cometd
> java.lang.NullPointerException
> at
> org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:225)
>  at
> org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:361)
> at
> org.cometd.websocket.server.WebSocketTransport.handle(WebSocketTransport.java:154)
>  at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>  at
> org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
> at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>  at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
> at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>  at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>  at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
>  at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>  at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
>  at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
>  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>  at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> 2013-05-22
> 18:02:42.881:org.eclipse.jetty.continuation.Jetty6Continuation:WARN:
>  !ContinuationFilter installed
> 2013-05-22 18:02:42.881::WARN:  /tapestry-cometd-demo/cometd/connect
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
> at
> org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:141)
>  at
> org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:286)
> at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
>  at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown
> Source)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
>  at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>  at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>  at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>  at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
>  at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
>  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>  at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>  at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>  at
> org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:135)
> ... 34 more
> Caused by: java.lang.IllegalStateException: !ContinuationFilter installed
> at
> org.eclipse.jetty.continuation.Jetty6Continuation.<init>(Jetty6Continuation.java:45)
>  ... 39 more
> isAuthorized(/chatservice/users)
> [DEBUG] AppModule.ChatService Creating proxy for service ChatService
> [DEBUG] AppModule.ChatService Loading class
> org.lazan.t5.cometddemo.services.internal.ChatServiceImpl.
> [DEBUG] AppModule.ChatService Marking class
> org.lazan.t5.cometddemo.services.internal.ChatServiceImpl to be (re-)loaded
> [DEBUG] AppModule.ChatService BEGIN Analyzing
> org.lazan.t5.cometddemo.services.internal.ChatServiceImpl
> [DEBUG] AppModule.ChatService   END Analyzing
> org.lazan.t5.cometddemo.services.internal.ChatServiceImpl
> [DEBUG] AppModule.ChatService Invoking constructor public
> org.lazan.t5.cometddemo.services.internal.ChatServiceImpl(org.lazan.t5.cometd.services.PushManager)
> (for service 'ChatService')
> onSubscribe(/chatservice/users)
> isAuthorized(/chatservice/chat)
> [INFO] server.ServerChannel Exception while invoking listener <Proxy for
> SubscriptionListeners(org.lazan.t5.cometd.services.SubscriptionListeners)>
> java.lang.IllegalStateException: Chat user not logged in
> at
> org.lazan.t5.cometddemo.services.internal.ChatSubscriptionListener.onSubscribe(ChatSubscriptionListener.java:31)
>  at
> org.lazan.t5.cometd.services.internal.SubscriptionListenersImpl.subscribed(SubscriptionListenersImpl.java:45)
> at $SubscriptionListeners_13009d67d39f6a00.subscribed(Unknown Source)
>  at
> org.cometd.server.ServerChannelImpl.notifySubscribed(ServerChannelImpl.java:148)
> at
> org.cometd.server.ServerChannelImpl.subscribe(ServerChannelImpl.java:127)
>  at
> org.cometd.server.ServerChannelImpl.subscribe(ServerChannelImpl.java:113)
> at
> org.cometd.server.BayeuxServerImpl$SubscribeHandler.onMessage(BayeuxServerImpl.java:1373)
>  at
> org.cometd.server.BayeuxServerImpl.doPublish(BayeuxServerImpl.java:882)
> at org.cometd.server.BayeuxServerImpl.handle(BayeuxServerImpl.java:672)
>  at
> org.cometd.server.transport.LongPollingTransport.bayeuxServerHandle(LongPollingTransport.java:425)
> at
> org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:234)
>  at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>  at
> org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
> at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
>  at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
> at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
>  at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>  at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>  at
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
>  at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
> at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
>  at
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:324)
>  at
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
> at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
>  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
>  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>  at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> isAuthorized(/stocks/GOOG)
> onSubscribe(/stocks/GOOG)
> isAuthorized(/stocks/YAHOO)
> onSubscribe(/stocks/YAHOO)
> 2013-05-22
> 18:02:43.655:org.eclipse.jetty.continuation.Jetty6Continuation:WARN:
>  !ContinuationFilter installed
> 2013-05-22 18:02:43.655::WARN:  /tapestry-cometd-demo/cometd/connect
> java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
> at
> org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:141)
>  at
> org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:286)
> at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
>  at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown
> Source)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
> at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
>  at
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at
> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
>  at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
> at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
>  at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
> at
> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>  at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> at
> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
>  at
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
> at
> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
>  at
> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>  at org.mortbay.jetty.Server.handle(Server.java:324)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
>  at
> org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
>  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>  at
> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at
> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>  at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>  at
> org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:135)
> ... 34 more
> Caused by: java.lang.IllegalStateException: !ContinuationFilter installed
> at
> org.eclipse.jetty.continuation.Jetty6Continuation.<init>(Jetty6Continuation.java:45)
>  ... 39 more
> isAuthorized(/stocks/IBM)
> onSubscribe(/stocks/IBM)
> isAuthorized(/stocks/SONY)
> onSubscribe(/stocks/SONY)
> isAuthorized(/stocks/**)
> onSubscribe(/stocks/**)
>
>
>
>
> On Wed, May 22, 2013 at 3:37 PM, Lance Java <la...@googlemail.com>wrote:
>
>> Hi, as a previous dwr committer myself, I was keen to provide dwr reverse
>> ajax / tapestry integration.
>>
>> After speaking to the dwr team, I found that the push mechanism in dwr was
>> not considered bulletproof and was directed towards cometd
>>
>> For this reason, I have created tapestry-cometd, a push library for
>> tapestry that requires zero javascript
>> https://github.com/uklance/tapestry-cometd
>>
>> You must be aware that the tapestry team currently have push as a high
>> priority feature for the next release. So watch this space for an out of
>> the box solution.
>>
>> In the meantime, I'll be happy to help with a tapestry - cometd solution .
>>
>
>

Re: dwr java chat demo in t5

Posted by Jon Williams <wi...@gmail.com>.
Hi Lance,

This email thread caught my eye so I went and got your example app.
It seems to be running, in a fashion. However,
I'm seeing NPE's at runtime...

1 caveat, maybe pertinent. I had to add a dependency to the pom to get a
good build...
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>7.6.4.v20120524</version>
        </dependency>

If you've got a moment, maybe you could take a look.
Quite interested in using your project.
thanks
Jon

Here my console output...
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
-Dmaven.home=/usr/share/java/maven-3.0.4
-Dclassworlds.conf=/usr/share/java/maven-3.0.4/bin/m2.conf
-Didea.launcher.port=7532
"-Didea.launcher.bin.path=/Applications/jetbrains2013/IntelliJ IDEA
12.app/bin" -Dfile.encoding=UTF-8 -classpath
"/usr/share/java/maven-3.0.4/boot/plexus-classworlds-2.4.jar:/Applications/jetbrains2013/IntelliJ
IDEA 12.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain
org.codehaus.classworlds.Launcher --fail-fast --strict-checksums
org.mortbay.jetty:maven-jetty-plugin:6.1.16:run -P jetty-hightide
[INFO] Scanning for projects...
[INFO]

[INFO]
------------------------------------------------------------------------
[INFO] Building tapestry-cometd-demo Tapestry 5 Application 1.0-SNAPSHOT
[INFO]
------------------------------------------------------------------------
[INFO]
[INFO] >>> maven-jetty-plugin:6.1.16:run (default-cli) @
tapestry-cometd-demo >>>
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @
tapestry-cometd-demo ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered
resources, i.e. build is platform dependent!
[INFO] Copying 8 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @
tapestry-cometd-demo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.5:testResources (default-testResources)
@ tapestry-cometd-demo ---
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered
resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @
tapestry-cometd-demo ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] <<< maven-jetty-plugin:6.1.16:run (default-cli) @
tapestry-cometd-demo <<<
[INFO]
[INFO] --- maven-jetty-plugin:6.1.16:run (default-cli) @
tapestry-cometd-demo ---
[INFO] Configuring Jetty for project: tapestry-cometd-demo Tapestry 5
Application
[INFO] Webapp source directory =
/Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp
[INFO] Reload Mechanic: automatic
[INFO] web.xml file =
/Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp/WEB-INF/web.xml
[INFO] Classes =
/Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/target/classes
2013-05-22 18:02:35.124::INFO:  Logging to STDERR via
org.mortbay.log.StdErrLog
[INFO] Context path = /tapestry-cometd-demo
[INFO] Tmp directory =  determined at runtime
[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml
[INFO] Web overrides =  none
[INFO] Webapp directory =
/Users/jonwilliams/wrk/java/3rdParty/tapestry-cometd-demo-master/src/main/webapp
[INFO] Starting jetty 6.1.16 ...
2013-05-22 18:02:35.211::INFO:  jetty-6.1.16
2013-05-22 18:02:35.327::INFO:  No Transaction manager found - if your
webapp requires one, please configure one.
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.ioc.services.TapestryIOCModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.json.services.JSONModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.lazan.t5.cometd.services.CometdModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.got5.tapestry5.jquery.services.JQueryModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.got5.tapestry5.jquery.services.js.JSModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.upload.services.UploadModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.services.TapestryModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.internal.services.InternalModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.services.assets.AssetsModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.apache.tapestry5.services.pageload.PageLoadModule
[INFO] ioc.RegistryBuilder Adding module definition for class
org.lazan.t5.cometddemo.services.AppModule
[INFO] TapestryModule.ComponentClassResolver Registering cometd component
library
[INFO] TapestryModule.ComponentClassResolver Available pages (8):
              (blank): org.lazan.t5.cometddemo.pages.Index
                 Chat: org.lazan.t5.cometddemo.pages.Chat
      ExceptionReport: org.apache.tapestry5.corelib.pages.ExceptionReport
                Index: org.lazan.t5.cometddemo.pages.Index
          PageCatalog: org.apache.tapestry5.corelib.pages.PageCatalog
PropertyDisplayBlocks:
org.apache.tapestry5.corelib.pages.PropertyDisplayBlocks
   PropertyEditBlocks: org.apache.tapestry5.corelib.pages.PropertyEditBlocks
        ServiceStatus: org.apache.tapestry5.corelib.pages.ServiceStatus
               Stocks: org.lazan.t5.cometddemo.pages.Stocks

[INFO] TapestryModule.ComponentClassResolver Available components (80):
                ActionLink:
org.apache.tapestry5.corelib.components.ActionLink
                AddRowLink:
org.apache.tapestry5.corelib.components.AddRowLink
              AjaxFormLoop:
org.apache.tapestry5.corelib.components.AjaxFormLoop
                    Alerts: org.apache.tapestry5.corelib.components.Alerts
                       Any: org.apache.tapestry5.corelib.components.Any
               BeanDisplay:
org.apache.tapestry5.corelib.components.BeanDisplay
              BeanEditForm:
org.apache.tapestry5.corelib.components.BeanEditForm
                BeanEditor:
org.apache.tapestry5.corelib.components.BeanEditor
                  Checkbox: org.apache.tapestry5.corelib.components.Checkbox
                 Checklist:
org.apache.tapestry5.corelib.components.Checklist
                 DateField:
org.apache.tapestry5.corelib.components.DateField
                  Delegate: org.apache.tapestry5.corelib.components.Delegate
                   Doctype: org.apache.tapestry5.corelib.components.Doctype
                   Dynamic: org.apache.tapestry5.corelib.components.Dynamic
                     Error: org.apache.tapestry5.corelib.components.Error
                    Errors: org.apache.tapestry5.corelib.components.Errors
                 EventLink:
org.apache.tapestry5.corelib.components.EventLink
          ExceptionDisplay:
org.apache.tapestry5.corelib.components.ExceptionDisplay
                      Form: org.apache.tapestry5.corelib.components.Form
              FormFragment:
org.apache.tapestry5.corelib.components.FormFragment
              FormInjector:
org.apache.tapestry5.corelib.components.FormInjector
                      Grid: org.apache.tapestry5.corelib.components.Grid
                  GridCell: org.apache.tapestry5.corelib.components.GridCell
               GridColumns:
org.apache.tapestry5.corelib.components.GridColumns
                 GridPager:
org.apache.tapestry5.corelib.components.GridPager
                  GridRows: org.apache.tapestry5.corelib.components.GridRows
                    Hidden: org.apache.tapestry5.corelib.components.Hidden
                        If: org.apache.tapestry5.corelib.components.If
                     Label: org.apache.tapestry5.corelib.components.Label
                    Layout: org.lazan.t5.cometddemo.components.Layout
                LinkSubmit:
org.apache.tapestry5.corelib.components.LinkSubmit
                      Loop: org.apache.tapestry5.corelib.components.Loop
                    Output: org.apache.tapestry5.corelib.components.Output
                 OutputRaw:
org.apache.tapestry5.corelib.components.OutputRaw
                  PageLink: org.apache.tapestry5.corelib.components.PageLink
                   Palette: org.apache.tapestry5.corelib.components.Palette
             PasswordField:
org.apache.tapestry5.corelib.components.PasswordField
        ProgressiveDisplay:
org.apache.tapestry5.corelib.components.ProgressiveDisplay
           PropertyDisplay:
org.apache.tapestry5.corelib.components.PropertyDisplay
            PropertyEditor:
org.apache.tapestry5.corelib.components.PropertyEditor
                     Radio: org.apache.tapestry5.corelib.components.Radio
                RadioGroup:
org.apache.tapestry5.corelib.components.RadioGroup
             RemoveRowLink:
org.apache.tapestry5.corelib.components.RemoveRowLink
              RenderObject:
org.apache.tapestry5.corelib.components.RenderObject
                    Select: org.apache.tapestry5.corelib.components.Select
                    Submit: org.apache.tapestry5.corelib.components.Submit
            SubmitNotifier:
org.apache.tapestry5.corelib.components.SubmitNotifier
                  TextArea: org.apache.tapestry5.corelib.components.TextArea
                 TextField:
org.apache.tapestry5.corelib.components.TextField
                TextOutput:
org.apache.tapestry5.corelib.components.TextOutput
                      Tree: org.apache.tapestry5.corelib.components.Tree
                   Trigger: org.apache.tapestry5.corelib.components.Trigger
                    Unless: org.apache.tapestry5.corelib.components.Unless
                    Upload: org.apache.tapestry5.upload.components.Upload
                      Zone: org.apache.tapestry5.corelib.components.Zone
         cometd/PushTarget: org.lazan.t5.cometd.components.PushTarget
jquery/AbstractJQueryTable:
org.got5.tapestry5.jquery.components.AbstractJQueryTable
      jquery/AbstractTable:
org.got5.tapestry5.jquery.components.AbstractTable
          jquery/Accordion: org.got5.tapestry5.jquery.components.Accordion
         jquery/AjaxUpload: org.got5.tapestry5.jquery.components.AjaxUpload
           jquery/Carousel: org.got5.tapestry5.jquery.components.Carousel
       jquery/CarouselItem:
org.got5.tapestry5.jquery.components.CarouselItem
           jquery/Checkbox: org.got5.tapestry5.jquery.components.Checkbox
          jquery/DataTable: org.got5.tapestry5.jquery.components.DataTable
             jquery/Dialog: org.got5.tapestry5.jquery.components.Dialog
     jquery/DialogAjaxLink:
org.got5.tapestry5.jquery.components.DialogAjaxLink
         jquery/DialogLink: org.got5.tapestry5.jquery.components.DialogLink
          jquery/Draggable: org.got5.tapestry5.jquery.components.Draggable
            jquery/Gallery: org.got5.tapestry5.jquery.components.Gallery
        jquery/GridColumns: org.got5.tapestry5.jquery.components.GridColumns
      jquery/InPlaceEditor:
org.got5.tapestry5.jquery.components.InPlaceEditor
            jquery/Palette: org.got5.tapestry5.jquery.components.Palette
 jquery/ProgressiveDisplay:
org.got5.tapestry5.jquery.components.ProgressiveDisplay
        jquery/RangeSlider: org.got5.tapestry5.jquery.components.RangeSlider
         jquery/ShowSource: org.got5.tapestry5.jquery.components.ShowSource
             jquery/Slider: org.got5.tapestry5.jquery.components.Slider
          jquery/Superfish: org.got5.tapestry5.jquery.components.Superfish
               jquery/Tabs: org.got5.tapestry5.jquery.components.Tabs
        jquery/TwitterView: org.got5.tapestry5.jquery.components.TwitterView
 t5internal/InternalLayout:
org.apache.tapestry5.internal.t5internal.components.InternalLayout

[INFO] TapestryModule.ComponentClassResolver Available mixins (24):
           Autocomplete: org.apache.tapestry5.corelib.mixins.Autocomplete
            DiscardBody: org.apache.tapestry5.corelib.mixins.DiscardBody
         FormFieldFocus: org.apache.tapestry5.corelib.mixins.FormFieldFocus
               NotEmpty: org.apache.tapestry5.corelib.mixins.NotEmpty
     OverrideFieldFocus:
org.apache.tapestry5.corelib.mixins.OverrideFieldFocus
         RenderClientId: org.apache.tapestry5.corelib.mixins.RenderClientId
         RenderDisabled: org.apache.tapestry5.corelib.mixins.RenderDisabled
        RenderInformals: org.apache.tapestry5.corelib.mixins.RenderInformals
     RenderNotification:
org.apache.tapestry5.corelib.mixins.RenderNotification
        TriggerFragment: org.apache.tapestry5.corelib.mixins.TriggerFragment
            ZoneRefresh: org.apache.tapestry5.corelib.mixins.ZoneRefresh
    jquery/Autocomplete: org.got5.tapestry5.jquery.mixins.Autocomplete
            jquery/Bind: org.got5.tapestry5.jquery.mixins.Bind
          jquery/Button: org.got5.tapestry5.jquery.mixins.Button
jquery/CustomDatepicker: org.got5.tapestry5.jquery.mixins.CustomDatepicker
      jquery/CustomZone: org.got5.tapestry5.jquery.mixins.CustomZone
            jquery/Mask: org.got5.tapestry5.jquery.mixins.Mask
     jquery/Placeholder: org.got5.tapestry5.jquery.mixins.Placeholder
          jquery/Reveal: org.got5.tapestry5.jquery.mixins.Reveal
        jquery/Selector: org.got5.tapestry5.jquery.mixins.Selector
         jquery/Tooltip: org.got5.tapestry5.jquery.mixins.Tooltip
   jquery/ZoneDroppable: org.got5.tapestry5.jquery.mixins.ZoneDroppable
     jquery/ZoneRefresh: org.got5.tapestry5.jquery.mixins.ZoneRefresh
       jquery/ui/Widget: org.got5.tapestry5.jquery.mixins.ui.Widget

[INFO] BayeuxServerImpl.328332828 logLevel=2
[INFO] BayeuxServerImpl.328332828 org.atmosphere.useStream=false
[INFO] tapestry5.TapestryFilter Startup status:

Services:

             ActionRenderResponseGenerator: DEFINED
          AjaxComponentEventRequestHandler: DEFINED
         AjaxComponentEventResultProcessor: DEFINED
                  AjaxFormUpdateController: DEFINED
               AjaxPartialResponseRenderer: DEFINED
                      AjaxResponseRenderer: DEFINED
                         AjaxUploadDecoder: DEFINED
                              AlertManager: DEFINED
                       ApplicationDefaults: REAL
                        ApplicationGlobals: REAL
                    ApplicationInitializer: REAL
                   ApplicationStateManager: DEFINED
 ApplicationStatePersistenceStrategySource: DEFINED
                           AspectDecorator: VIRTUAL
                       AssetBindingFactory: DEFINED
                           AssetDispatcher: DEFINED
                       AssetObjectProvider: REAL
                      AssetPathConstructor: DEFINED
                        AssetPathConverter: DEFINED
                      AssetResourceLocator: DEFINED
                               AssetSource: VIRTUAL
                               Authorizers: VIRTUAL
                             BaseURLSource: DEFINED
                              BayeuxServer: REAL
                   BeanBlockOverrideSource: DEFINED
                           BeanBlockSource: DEFINED
                           BeanModelSource: DEFINED
                             BindingSource: DEFINED
                              ChainBuilder: VIRTUAL
                           ChannelIdSource: DEFINED
                               ChatService: DEFINED
                              ClassFactory: BUILTIN
                          ClassNameLocator: REAL
                ClasspathAssetAliasManager: DEFINED
                     ClasspathAssetFactory: DEFINED
                     ClasspathURLConverter: REAL
                     ClientBehaviorSupport: DEFINED
                         ClientDataEncoder: DEFINED
              ClientPersistentFieldStorage: DEFINED
             ClientPersistentFieldStrategy: DEFINED
                           ClientWhitelist: DEFINED
                             CometdGlobals: VIRTUAL
            CometdHttpServletRequestFilter: REAL
                       ComponentClassCache: VIRTUAL
                     ComponentClassFactory: DEFINED
                    ComponentClassResolver: REAL
             ComponentClassTransformWorker: DEFINED
      ComponentClassesInvalidationEventHub: REAL
                  ComponentDefaultProvider: DEFINED
                 ComponentEventLinkEncoder: DEFINED
             ComponentEventLinkTransformer: DEFINED
              ComponentEventRequestHandler: DEFINED
             ComponentEventResultProcessor: DEFINED
          ComponentInstanceResultProcessor: DEFINED
               ComponentInstantiatorSource: DEFINED
                     ComponentJSONRenderer: VIRTUAL
     ComponentMessagesInvalidationEventHub: DEFINED
                   ComponentMessagesSource: DEFINED
                      ComponentModelSource: DEFINED
       ComponentPageElementResourcesSource: DEFINED
                     ComponentProxyFactory: DEFINED
                   ComponentRequestHandler: DEFINED
          ComponentRequestSelectorAnalyzer: DEFINED
                  ComponentResourceLocator: DEFINED
                           ComponentSource: DEFINED
                  ComponentTemplateLocator: DEFINED
                   ComponentTemplateSource: DEFINED
    ComponentTemplatesInvalidationEventHub: DEFINED
                       CompressionAnalyzer: DEFINED
                       ContentTypeAnalyzer: DEFINED
                                   Context: DEFINED
                       ContextAssetFactory: DEFINED
                     ContextBindingFactory: DEFINED
                        ContextPathEncoder: DEFINED
                       ContextValueEncoder: DEFINED
                                CookieSink: DEFINED
                              CookieSource: DEFINED
                                   Cookies: DEFINED
                          DataTypeAnalyzer: DEFINED
                   DefaultDataTypeAnalyzer: DEFINED
                    DefaultFileItemFactory: DEFINED
              DefaultImplementationBuilder: VIRTUAL
                         DeferredExecution: DEFINED
                     DynamicTemplateParser: VIRTUAL
                              EffectsParam: DEFINED
                      EndOfRequestEventHub: REAL
                               Environment: DEFINED
                EnvironmentalShadowBuilder: VIRTUAL
                         ExceptionAnalyzer: DEFINED
                          ExceptionTracker: DEFINED
                           FactoryDefaults: REAL
                     FieldTranslatorSource: DEFINED
                    FieldValidationSupport: DEFINED
               FieldValidatorDefaultSource: DEFINED
                      FieldValidatorSource: DEFINED
                               FormSupport: DEFINED
                                 Heartbeat: DEFINED
                  HiddenFieldLocationRules: DEFINED
                        HttpServletRequest: DEFINED
                 HttpServletRequestHandler: VIRTUAL
                       HttpServletResponse: DEFINED
                        IgnoredPathsFilter: DEFINED
                         InjectionProvider: DEFINED
     InternalComponentInvalidationEventHub: REAL
                    InternalRequestGlobals: DEFINED
                                 JSHandler: DEFINED
                                 JSLocator: DEFINED
                                 JSSupport: DEFINED
            JavaScriptStackPathConstructor: DEFINED
                     JavaScriptStackSource: DEFINED
                         JavaScriptSupport: DEFINED
                               LazyAdvisor: DEFINED
                           LinkCreationHub: DEFINED
                                LinkSource: DEFINED
                           LinkTransformer: DEFINED
                        LocalizationSetter: DEFINED
                          LocationRenderer: DEFINED
                              LoggerSource: BUILTIN
                            LoggingAdvisor: DEFINED
                          LoggingDecorator: DEFINED
                            MarkupRenderer: DEFINED
                       MarkupWriterFactory: DEFINED
                          MasterDispatcher: DEFINED
                      MasterObjectProvider: REAL
           MasterStackTraceElementAnalyzer: DEFINED
                     MessageBindingFactory: DEFINED
                           MetaDataLocator: DEFINED
                                MetaWorker: DEFINED
                          MultipartDecoder: DEFINED
           NullFieldStrategyBindingFactory: DEFINED
                   NullFieldStrategySource: DEFINED
                  NumericTranslatorSupport: DEFINED
                            ObjectRenderer: DEFINED
            PageActivationContextCollector: DEFINED
                             PageActivator: DEFINED
                   PageContentTypeAnalyzer: DEFINED
                     PageDocumentGenerator: DEFINED
                        PageElementFactory: DEFINED
                               PageGlobals: DEFINED
                                PageLoader: DEFINED
                        PageMarkupRenderer: DEFINED
                      PageRenderLinkSource: DEFINED
                 PageRenderLinkTransformer: DEFINED
                           PageRenderQueue: DEFINED
                  PageRenderRequestHandler: DEFINED
                      PageResponseRenderer: DEFINED
                                PageSource: DEFINED
                     PartialMarkupRenderer: DEFINED
                          PeriodicExecutor: DEFINED
                    PersistentFieldManager: DEFINED
                          PersistentLocale: DEFINED
                          PerthreadManager: BUILTIN
                           PipelineBuilder: REAL
                       PlasticProxyFactory: BUILTIN
                        PropBindingFactory: DEFINED
                      PropertiesFileParser: DEFINED
                            PropertyAccess: VIRTUAL
                     PropertyConduitSource: DEFINED
                     PropertyShadowBuilder: VIRTUAL
                               PushManager: REAL
                       RegistryShutdownHub: BUILTIN
                           RegistryStartup: REAL
                             RenderSupport: DEFINED
                             RenderTracker: DEFINED
                                   Request: VIRTUAL
                   RequestExceptionHandler: DEFINED
                            RequestGlobals: DEFINED
                            RequestHandler: DEFINED
                          RequestPageCache: DEFINED
                    RequestSecurityManager: DEFINED
                     ResourceChangeTracker: DEFINED
                   ResourceDigestGenerator: DEFINED
                     ResourceDigestManager: DEFINED
                         ResourceMinimizer: DEFINED
                          ResourceStreamer: DEFINED
                                  Response: VIRTUAL
               ResponseCompressionAnalyzer: DEFINED
                          ResponseRenderer: DEFINED
                        SelectModelFactory: DEFINED
                    SelectorBindingFactory: DEFINED
                 ServiceActivityScoreboard: BUILTIN
                    ServiceLifecycleSource: REAL
                           ServiceOverride: REAL
             ServletApplicationInitializer: REAL
SessionApplicationStatePersistenceStrategy: DEFINED
            SessionPersistedObjectAnalyzer: DEFINED
                              StockService: DEFINED
                           StrategyBuilder: VIRTUAL
                  StreamableResourceSource: DEFINED
                            StringInterner: DEFINED
                     SubscriptionListeners: VIRTUAL
                      SymbolBindingFactory: DEFINED
                              SymbolSource: REAL
                    TapestrySessionFactory: DEFINED
                            TemplateParser: DEFINED
                              ThreadLocale: DEFINED
                              ThunkCreator: DEFINED
                   TranslateBindingFactory: DEFINED
                TranslatorAlternatesSource: DEFINED
                          TranslatorSource: DEFINED
                               TypeCoercer: REAL
                                URLEncoder: DEFINED
                         UpdateListenerHub: DEFINED
                    ValidateBindingFactory: DEFINED
             ValidationConstraintGenerator: DEFINED
                ValidationDecoratorFactory: DEFINED
                            ValidatorMacro: DEFINED
                        ValueEncoderSource: DEFINED
                              WidgetParams: DEFINED
                                        js: DEFINED

86.67% unrealized services (182/210)

Application 'app' (version 1.0-SNAPSHOT) startup time: 228 ms to build IoC
Registry, 1,051 ms overall.

 ______                  __             ____
/_  __/__ ____  ___ ___ / /_______ __  / __/
 / / / _ `/ _ \/ -_|_-</ __/ __/ // / /__ \
/_/  \_,_/ .__/\__/___/\__/_/  \_, / /____/
        /_/                   /___/  5.3.3 (development mode)


[INFO] Started Jetty Server
2013-05-22 18:02:36.808::INFO:  Started SelectChannelConnector@0.0.0.0:8080
2013-05-22 18:02:41.837::WARN:  /tapestry-cometd-demo/cometd
java.lang.NullPointerException
at
org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:225)
at
org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:361)
at
org.cometd.websocket.server.WebSocketTransport.handle(WebSocketTransport.java:154)
at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
2013-05-22 18:02:42.635::WARN:  /tapestry-cometd-demo/cometd
java.lang.NullPointerException
at
org.eclipse.jetty.websocket.WebSocketFactory.upgrade(WebSocketFactory.java:225)
at
org.eclipse.jetty.websocket.WebSocketFactory.acceptWebSocket(WebSocketFactory.java:361)
at
org.cometd.websocket.server.WebSocketTransport.handle(WebSocketTransport.java:154)
at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
2013-05-22
18:02:42.881:org.eclipse.jetty.continuation.Jetty6Continuation:WARN:
 !ContinuationFilter installed
2013-05-22 18:02:42.881::WARN:  /tapestry-cometd-demo/cometd/connect
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at
org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:141)
at
org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:286)
at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:135)
... 34 more
Caused by: java.lang.IllegalStateException: !ContinuationFilter installed
at
org.eclipse.jetty.continuation.Jetty6Continuation.<init>(Jetty6Continuation.java:45)
... 39 more
isAuthorized(/chatservice/users)
[DEBUG] AppModule.ChatService Creating proxy for service ChatService
[DEBUG] AppModule.ChatService Loading class
org.lazan.t5.cometddemo.services.internal.ChatServiceImpl.
[DEBUG] AppModule.ChatService Marking class
org.lazan.t5.cometddemo.services.internal.ChatServiceImpl to be (re-)loaded
[DEBUG] AppModule.ChatService BEGIN Analyzing
org.lazan.t5.cometddemo.services.internal.ChatServiceImpl
[DEBUG] AppModule.ChatService   END Analyzing
org.lazan.t5.cometddemo.services.internal.ChatServiceImpl
[DEBUG] AppModule.ChatService Invoking constructor public
org.lazan.t5.cometddemo.services.internal.ChatServiceImpl(org.lazan.t5.cometd.services.PushManager)
(for service 'ChatService')
onSubscribe(/chatservice/users)
isAuthorized(/chatservice/chat)
[INFO] server.ServerChannel Exception while invoking listener <Proxy for
SubscriptionListeners(org.lazan.t5.cometd.services.SubscriptionListeners)>
java.lang.IllegalStateException: Chat user not logged in
at
org.lazan.t5.cometddemo.services.internal.ChatSubscriptionListener.onSubscribe(ChatSubscriptionListener.java:31)
at
org.lazan.t5.cometd.services.internal.SubscriptionListenersImpl.subscribed(SubscriptionListenersImpl.java:45)
at $SubscriptionListeners_13009d67d39f6a00.subscribed(Unknown Source)
at
org.cometd.server.ServerChannelImpl.notifySubscribed(ServerChannelImpl.java:148)
at org.cometd.server.ServerChannelImpl.subscribe(ServerChannelImpl.java:127)
at org.cometd.server.ServerChannelImpl.subscribe(ServerChannelImpl.java:113)
at
org.cometd.server.BayeuxServerImpl$SubscribeHandler.onMessage(BayeuxServerImpl.java:1373)
at org.cometd.server.BayeuxServerImpl.doPublish(BayeuxServerImpl.java:882)
at org.cometd.server.BayeuxServerImpl.handle(BayeuxServerImpl.java:672)
at
org.cometd.server.transport.LongPollingTransport.bayeuxServerHandle(LongPollingTransport.java:425)
at
org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:234)
at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
isAuthorized(/stocks/GOOG)
onSubscribe(/stocks/GOOG)
isAuthorized(/stocks/YAHOO)
onSubscribe(/stocks/YAHOO)
2013-05-22
18:02:43.655:org.eclipse.jetty.continuation.Jetty6Continuation:WARN:
 !ContinuationFilter installed
2013-05-22 18:02:43.655::WARN:  /tapestry-cometd-demo/cometd/connect
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at
org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:141)
at
org.cometd.server.transport.LongPollingTransport.handle(LongPollingTransport.java:286)
at org.cometd.server.CometdServlet.service(CometdServlet.java:181)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.lazan.t5.cometd.services.internal.ServletHttpServletRequestFilter.service(ServletHttpServletRequestFilter.java:76)
at $CometdHttpServletRequestFilter_13009d67d39f69fe.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13009d67d39f6a05.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
at $HttpServletRequestHandler_13009d67d39f6a09.service(Unknown Source)
at $HttpServletRequestHandler_13009d67d39f6a02.service(Unknown Source)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:135)
... 34 more
Caused by: java.lang.IllegalStateException: !ContinuationFilter installed
at
org.eclipse.jetty.continuation.Jetty6Continuation.<init>(Jetty6Continuation.java:45)
... 39 more
isAuthorized(/stocks/IBM)
onSubscribe(/stocks/IBM)
isAuthorized(/stocks/SONY)
onSubscribe(/stocks/SONY)
isAuthorized(/stocks/**)
onSubscribe(/stocks/**)




On Wed, May 22, 2013 at 3:37 PM, Lance Java <la...@googlemail.com>wrote:

> Hi, as a previous dwr committer myself, I was keen to provide dwr reverse
> ajax / tapestry integration.
>
> After speaking to the dwr team, I found that the push mechanism in dwr was
> not considered bulletproof and was directed towards cometd
>
> For this reason, I have created tapestry-cometd, a push library for
> tapestry that requires zero javascript
> https://github.com/uklance/tapestry-cometd
>
> You must be aware that the tapestry team currently have push as a high
> priority feature for the next release. So watch this space for an out of
> the box solution.
>
> In the meantime, I'll be happy to help with a tapestry - cometd solution .
>

Re: dwr java chat demo in t5

Posted by Lance Java <la...@googlemail.com>.
Hi, as a previous dwr committer myself, I was keen to provide dwr reverse
ajax / tapestry integration.

After speaking to the dwr team, I found that the push mechanism in dwr was
not considered bulletproof and was directed towards cometd

For this reason, I have created tapestry-cometd, a push library for
tapestry that requires zero javascript
https://github.com/uklance/tapestry-cometd

You must be aware that the tapestry team currently have push as a high
priority feature for the next release. So watch this space for an out of
the box solution.

In the meantime, I'll be happy to help with a tapestry - cometd solution .