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 <lance.j...@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 . >