wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emond Papegaaij <emond.papega...@topicus.nl>
Subject Re: [6.0] wicket-atmosphere
Date Thu, 09 Aug 2012 08:02:11 GMT
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 <goupilpierre@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-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message