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: > > <init-param> > <param-name>org.atmosphere.useWebSocket</param-name> > <param-value>FALSE</param-value> > </init-param> > > in my web.xml. > > Regards, > > Pierre > > On Wed, Aug 8, 2012 at 5:43 PM, Pierre Goupil <goupilpie...@gmail.com>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.<init>(Session.java:211) > > at > > > > org.apache.wicket.protocol.http.WebSession.<init>(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.onOpen(TomcatWebSocketHand > > ler.java:58)> > > at > > > > org.apache.catalina.websocket.StreamInbound.onUpgradeComplete(StreamInboun > > d.java:228)> > > at > > > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(Abstr > > actProtocol.java:593)> > > at > > > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.jav > > a: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.printStackTrace(); > > > > } > > > > } > > > > }; > > scheduler.scheduleWithFixedDelay(beeper, 2, 2, TimeUnit.SECONDS); > > > > } > > > > > > > > > > And here is the code that should trigger but that doesn't: > > > > public HomePage(final PageParameters parameters) > > > > { > > > > super(parameters); > > > > timeLabel = new Label("version", Model.of("-")); > > timeLabel.setOutputMarkupId(true); > > add(timeLabel); > > > > } > > > > @Subscribe > > public void updateTime(AjaxRequestTarget target, Date event) > > { > > > > timeLabel.setDefaultModelObject(event.toString()); > > target.add(timeLabel); > > > > } > > > > I'm using Wicket-6.0.0-beta3 and its wicket-atmosphere 0.2. > > > > Thanks in advance, > > > > Pierre > > > > > > > > > > -- > > Le bonheur n'est pas une destination, mais une façon de voyager. > > > > Papa d'une petite Lou-Ann depuis le 30 juin. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org