Re: [6.0] wicket-atmosphere
Good afternoon, Is there any way to have Comet channels using the wicket-atmosphere API? For instance, with the Broadcaster API, you could use a MetaBroadcaster which used to have a broadcasterID parameter. I can't figure out how to integrate that in my wicket-atmosphere code and the JavaDoc from EventBus#post() reads: "Post an event to *all* pages that have a suspended connection". Any help will be much appreciated! Regards, Pierre Goupil On Thu, Aug 9, 2012 at 10:17 AM, Pierre Goupil wrote: > > Thanks!!! I'll have a close look at your ticket. And yes, I use Tomcat > (7.0.29). I know it's all beta code, so no worries. > > Regards, > > Pierre > > > > > On Thu, Aug 9, 2012 at 10:02 AM, Emond Papegaaij > wrote: >> >> We've noticed this problem as well. It only happens on Tomcat. I'm not sure >> what is going on, but it all starts with Tomcat loosing query parameters on >> the ws-request ("url/?0-1.IBehaviorListener.0-" is changed to "url"). This >> makes it impossible for wicket to recognize the call to a behavior, causing a >> redirect to a new page on the ws-request, which is not allowed. >> >> The question is, is this a bug in Tomcat, Atmosphere or wicket-atmosphere. I >> would say it's a bug in Atmosphere. I've created a ticket for this: >> https://github.com/Atmosphere/atmosphere/issues/553 >> >> For now, using jetty is a work around. >> >> Best regards, >> Emond >> >> On Wednesday 08 August 2012 20:59:10 Pierre Goupil wrote: >> > Hello, >> > >> > It looks like a problem with the WebSockets. I've tried to provide a >> > Locale, but no way: >> > >> > class MySession extends WebSession >> > { >> > private static final long serialVersionUID = 1L; >> > >> > public MySession(final Request req) >> > { >> > super(req); >> > } >> > >> > @Override >> > public void setLocale(final Locale locale) >> > { >> > super.setLocale(new Locale("en", "GB")); >> > } >> > } >> > >> > and in my WicketApplication: >> > >> > @Override >> > public Session newSession( final Request req, final Response res ) { >> > return new MySession(req); >> > } >> > >> > It all gives me the same error. >> > >> > BUT if I deactivate the WebSockets, it works: >> > >> > >> > org.atmosphere.useWebSocket >> > FALSE >> > >> > >> > in my web.xml. >> > >> > Regards, >> > >> > Pierre >> > >> > On Wed, Aug 8, 2012 at 5:43 PM, Pierre Goupil >> > wrote: >> > > Good afternoon, >> > > >> > > I'm currently trying and have wicket-atmosphere work. I've looked at the >> > > examples and I'm unable to post a message because of this exception: >> > > >> > > >> > > INFO - EventBus - registering component for page 0 for >> > > session 971E81ED0E61970FA35A1B03E5B218F8: >> > > ERROR - DefaultExceptionMapper - Unexpected error occurred >> > > java.lang.IllegalStateException: Request#getLocale() cannot return null, >> > > request has to have a locale set on it >> > > >> > > at org.apache.wicket.Session.(Session.java:211) >> > > at >> > > >> > > org.apache.wicket.protocol.http.WebSession.(WebSession.java:92) >> > > >> > > at >> > > >> > > org.apache.wicket.protocol.http.WebApplication.newSession(WebApplication.j >> > > ava:536)> >> > > at >> > > >> > > org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:15 >> > > 57)> >> > > at org.apache.wicket.Session.get(Session.java:152) >> > > at >> > > >> > > org.apache.wicket.RestartResponseAtInterceptPageException$InterceptData.ge >> > > t(RestartResponseAtInterceptPageException.java:146)> >> > > at >> > > >> > > org.apache.wicket.RestartResponseAtInterceptPageException$1.matchedData(Re >> > > startResponseAtInterceptPageException.java:211)> >> > > at >> > > >> > > org.apache.wicket.RestartResponseAtInterceptPageException$1.getCompatibili >> > > tyScore(RestartResponseAtInterceptPageException.java:179)> >> > > at >> > > >> > > org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(Compound >> > > RequestMapper.java:134)> >> > > at >> > > >> > > org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(Request >> > > Cycle.java:182)> >> > > at >> > > >> > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.j >> > > ava:207)> >> > > at >> > > >> > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(Reque >> > > stCycle.java:281)> >> > > at >> > > >> > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.j >> > > ava:188)> >> > > at >> > > >> > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:24 >> > > 5)> >> > > at >> > > >> > > org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.j >> > > ava:154)> >> > > at >> > > >> > > org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilt >> > > erChain.java:131)> >> > > at >> > > >> > > org.atmosphere.handler.
Re: [6.0] wicket-atmosphere
Thanks!!! I'll have a close look at your ticket. And yes, I use Tomcat (7.0.29). I know it's all beta code, so no worries. Regards, Pierre On Thu, Aug 9, 2012 at 10:02 AM, Emond Papegaaij wrote: > We've noticed this problem as well. It only happens on Tomcat. I'm not sure > what is going on, but it all starts with Tomcat loosing query parameters on > the ws-request ("url/?0-1.IBehaviorListener.0-" is changed to "url"). This > makes it impossible for wicket to recognize the call to a behavior, > causing a > redirect to a new page on the ws-request, which is not allowed. > > The question is, is this a bug in Tomcat, Atmosphere or wicket-atmosphere. > I > would say it's a bug in Atmosphere. I've created a ticket for this: > https://github.com/Atmosphere/atmosphere/issues/553 > > For now, using jetty is a work around. > > Best regards, > Emond > > On Wednesday 08 August 2012 20:59:10 Pierre Goupil wrote: > > Hello, > > > > It looks like a problem with the WebSockets. I've tried to provide a > > Locale, but no way: > > > > class MySession extends WebSession > > { > > private static final long serialVersionUID = 1L; > > > > public MySession(final Request req) > > { > > super(req); > > } > > > > @Override > > public void setLocale(final Locale locale) > > { > > super.setLocale(new Locale("en", "GB")); > > } > > } > > > > and in my WicketApplication: > > > > @Override > > public Session newSession( final Request req, final Response res ) > { > > return new MySession(req); > > } > > > > It all gives me the same error. > > > > BUT if I deactivate the WebSockets, it works: > > > > > > org.atmosphere.useWebSocket > > FALSE > > > > > > in my web.xml. > > > > Regards, > > > > Pierre > > > > On Wed, Aug 8, 2012 at 5:43 PM, Pierre Goupil >wrote: > > > Good afternoon, > > > > > > I'm currently trying and have wicket-atmosphere work. I've looked at > the > > > examples and I'm unable to post a message because of this exception: > > > > > > > > > INFO - EventBus - registering component for page 0 > for > > > session 971E81ED0E61970FA35A1B03E5B218F8: > > > ERROR - DefaultExceptionMapper - Unexpected error occurred > > > java.lang.IllegalStateException: Request#getLocale() cannot return > null, > > > request has to have a locale set on it > > > > > > at org.apache.wicket.Session.(Session.java:211) > > > at > > > > > > org.apache.wicket.protocol.http.WebSession.(WebSession.java:92) > > > > > > at > > > > > > > org.apache.wicket.protocol.http.WebApplication.newSession(WebApplication.j > > > ava:536)> > > > at > > > > > > > org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:15 > > > 57)> > > > at org.apache.wicket.Session.get(Session.java:152) > > > at > > > > > > > org.apache.wicket.RestartResponseAtInterceptPageException$InterceptData.ge > > > t(RestartResponseAtInterceptPageException.java:146)> > > > at > > > > > > > org.apache.wicket.RestartResponseAtInterceptPageException$1.matchedData(Re > > > startResponseAtInterceptPageException.java:211)> > > > at > > > > > > > org.apache.wicket.RestartResponseAtInterceptPageException$1.getCompatibili > > > tyScore(RestartResponseAtInterceptPageException.java:179)> > > > at > > > > > > > org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(Compound > > > RequestMapper.java:134)> > > > at > > > > > > > org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(Request > > > Cycle.java:182)> > > > at > > > > > > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.j > > > ava:207)> > > > at > > > > > > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(Reque > > > stCycle.java:281)> > > > at > > > > > > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.j > > > ava:188)> > > > at > > > > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:24 > > > 5)> > > > at > > > > > > > org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.j > > > ava:154)> > > > at > > > > > > > org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilt > > > erChain.java:131)> > > > at > > > > > > > org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper > > > .service(ReflectorServletProcessor.java:310)> > > > at > > > > > > > org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServle > > > tProcessor.java:168)> > > > at > > > > > > > org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java > > > :248)> > > > at > > > > > > > org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.j > > > ava:166)> > > > at > > > > > > > org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil > > > .java:120)> > > > at > > > > > > > org.atmosphere.con
Re: [6.0] wicket-atmosphere
We've noticed this problem as well. It only happens on Tomcat. I'm not sure what is going on, but it all starts with Tomcat loosing query parameters on the ws-request ("url/?0-1.IBehaviorListener.0-" is changed to "url"). This makes it impossible for wicket to recognize the call to a behavior, causing a redirect to a new page on the ws-request, which is not allowed. The question is, is this a bug in Tomcat, Atmosphere or wicket-atmosphere. I would say it's a bug in Atmosphere. I've created a ticket for this: https://github.com/Atmosphere/atmosphere/issues/553 For now, using jetty is a work around. Best regards, Emond On Wednesday 08 August 2012 20:59:10 Pierre Goupil wrote: > Hello, > > It looks like a problem with the WebSockets. I've tried to provide a > Locale, but no way: > > class MySession extends WebSession > { > private static final long serialVersionUID = 1L; > > public MySession(final Request req) > { > super(req); > } > > @Override > public void setLocale(final Locale locale) > { > super.setLocale(new Locale("en", "GB")); > } > } > > and in my WicketApplication: > > @Override > public Session newSession( final Request req, final Response res ) { > return new MySession(req); > } > > It all gives me the same error. > > BUT if I deactivate the WebSockets, it works: > > > org.atmosphere.useWebSocket > FALSE > > > in my web.xml. > > Regards, > > Pierre > > On Wed, Aug 8, 2012 at 5:43 PM, Pierre Goupil wrote: > > Good afternoon, > > > > I'm currently trying and have wicket-atmosphere work. I've looked at the > > examples and I'm unable to post a message because of this exception: > > > > > > INFO - EventBus - registering component for page 0 for > > session 971E81ED0E61970FA35A1B03E5B218F8: > > ERROR - DefaultExceptionMapper - Unexpected error occurred > > java.lang.IllegalStateException: Request#getLocale() cannot return null, > > request has to have a locale set on it > > > > at org.apache.wicket.Session.(Session.java:211) > > at > > > > org.apache.wicket.protocol.http.WebSession.(WebSession.java:92) > > > > at > > > > org.apache.wicket.protocol.http.WebApplication.newSession(WebApplication.j > > ava:536)> > > at > > > > org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:15 > > 57)> > > at org.apache.wicket.Session.get(Session.java:152) > > at > > > > org.apache.wicket.RestartResponseAtInterceptPageException$InterceptData.ge > > t(RestartResponseAtInterceptPageException.java:146)> > > at > > > > org.apache.wicket.RestartResponseAtInterceptPageException$1.matchedData(Re > > startResponseAtInterceptPageException.java:211)> > > at > > > > org.apache.wicket.RestartResponseAtInterceptPageException$1.getCompatibili > > tyScore(RestartResponseAtInterceptPageException.java:179)> > > at > > > > org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(Compound > > RequestMapper.java:134)> > > at > > > > org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(Request > > Cycle.java:182)> > > at > > > > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.j > > ava:207)> > > at > > > > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(Reque > > stCycle.java:281)> > > at > > > > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.j > > ava:188)> > > at > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:24 > > 5)> > > at > > > > org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.j > > ava:154)> > > at > > > > org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilt > > erChain.java:131)> > > at > > > > org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper > > .service(ReflectorServletProcessor.java:310)> > > at > > > > org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServle > > tProcessor.java:168)> > > at > > > > org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java > > :248)> > > at > > > > org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.j > > ava:166)> > > at > > > > org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil > > .java:120)> > > at > > > > org.atmosphere.container.Tomcat7BIOSupportWithWebSocket.service(Tomcat7BIO > > SupportWithWebSocket.java:57)> > > at > > > > org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework. > > java:1222)> > > at > > > > org.atmosphere.websocket.WebSocketProcessor.dispatch(WebSocketProcessor.ja > > va:187)> > > at > > > > org.atmosphere.websocket.WebSocketProcessor.dispatch(WebSocketProcessor.ja > > va:116)> > > at > > > > org.atmosphere.container.TomcatWebSocketHandler.onOp
Re: [6.0] wicket-atmosphere
Hello, It looks like a problem with the WebSockets. I've tried to provide a Locale, but no way: class MySession extends WebSession { private static final long serialVersionUID = 1L; public MySession(final Request req) { super(req); } @Override public void setLocale(final Locale locale) { super.setLocale(new Locale("en", "GB")); } } and in my WicketApplication: @Override public Session newSession( final Request req, final Response res ) { return new MySession(req); } It all gives me the same error. BUT if I deactivate the WebSockets, it works: org.atmosphere.useWebSocket FALSE in my web.xml. Regards, Pierre On Wed, Aug 8, 2012 at 5:43 PM, Pierre Goupil wrote: > Good afternoon, > > I'm currently trying and have wicket-atmosphere work. I've looked at the > examples and I'm unable to post a message because of this exception: > > > INFO - EventBus - registering component for page 0 for > session 971E81ED0E61970FA35A1B03E5B218F8: > ERROR - DefaultExceptionMapper - Unexpected error occurred > java.lang.IllegalStateException: Request#getLocale() cannot return null, > request has to have a locale set on it > at org.apache.wicket.Session.(Session.java:211) > at > org.apache.wicket.protocol.http.WebSession.(WebSession.java:92) > at > org.apache.wicket.protocol.http.WebApplication.newSession(WebApplication.java:536) > at > org.apache.wicket.Application.fetchCreateAndSetSession(Application.java:1557) > at org.apache.wicket.Session.get(Session.java:152) > at > org.apache.wicket.RestartResponseAtInterceptPageException$InterceptData.get(RestartResponseAtInterceptPageException.java:146) > at > org.apache.wicket.RestartResponseAtInterceptPageException$1.matchedData(RestartResponseAtInterceptPageException.java:211) > at > org.apache.wicket.RestartResponseAtInterceptPageException$1.getCompatibilityScore(RestartResponseAtInterceptPageException.java:179) > at > org.apache.wicket.request.mapper.CompoundRequestMapper.mapRequest(CompoundRequestMapper.java:134) > at > org.apache.wicket.request.cycle.RequestCycle.resolveRequestHandler(RequestCycle.java:182) > at > org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:207) > at > org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:281) > at > org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:188) > at > org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:245) > at > org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.java:154) > at > org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilterChain.java:131) > at > org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper.service(ReflectorServletProcessor.java:310) > at > org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServletProcessor.java:168) > at > org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:248) > at > org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:166) > at > org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:120) > at > org.atmosphere.container.Tomcat7BIOSupportWithWebSocket.service(Tomcat7BIOSupportWithWebSocket.java:57) > at > org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1222) > at > org.atmosphere.websocket.WebSocketProcessor.dispatch(WebSocketProcessor.java:187) > at > org.atmosphere.websocket.WebSocketProcessor.dispatch(WebSocketProcessor.java:116) > at > org.atmosphere.container.TomcatWebSocketHandler.onOpen(TomcatWebSocketHandler.java:58) > at > org.apache.catalina.websocket.StreamInbound.onUpgradeComplete(StreamInbound.java:228) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:593) > at > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:679) > > > > > My code is pretty straight-forward, but just in case, here is the > Application: > > @Override > public void init() > { > super.init(); > > eventBus = new EventBus(this); > > ScheduledExecutorService scheduler = > Executors.newScheduledThreadPool(1); > final Runnable beeper = new Runnable() > { > @Override > public void run() > { > try > { > eventBus.post(new Date()); > } > catch (Exception e) > { > e.printS