You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Pierre Goupil <go...@gmail.com> on 2012/08/08 17:43:20 UTC
[6.0] wicket-atmosphere
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.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.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.
Re: [6.0] wicket-atmosphere
Posted by Pierre Goupil <go...@gmail.com>.
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 <go...@gmail.com> 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 <em...@topicus.nl> 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:
>> >
>> > <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 <go...@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
>>
>
>
>
> --
> Le bonheur n'est pas une destination, mais une façon de voyager.
>
> Papa d'une petite Lou-Ann depuis le 30 juin.
>
--
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
Re: [6.0] wicket-atmosphere
Posted by Pierre Goupil <go...@gmail.com>.
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 <emond.papegaaij@topicus.nl
> 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:
> >
> > <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
>
>
--
Le bonheur n'est pas une destination, mais une façon de voyager.
Papa d'une petite Lou-Ann depuis le 30 juin.
Re: [6.0] wicket-atmosphere
Posted by Emond Papegaaij <em...@topicus.nl>.
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 <go...@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
Re: [6.0] wicket-atmosphere
Posted by Pierre Goupil <go...@gmail.com>.
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 <go...@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.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.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.
>
>
--
Le bonheur n'est pas une destination, mais une façon de voyager.
Papa d'une petite Lou-Ann depuis le 30 juin.