Great!

thanks for the feedback :)

*Romain Manni-Bucau*
*Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
*Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/>
*LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
*Github: https://github.com/rmannibucau*



2013/2/1 todor.dimitrov <[email protected]>

> The problem with the WebSocket was due to an error (false assumption) in
> my code. It worked with TomEE+ 1.5.1 because the session thread-local was
> never cleared.
>
> Now everything works fine. Thanks a lot!
>
>
> Todor
>
>
> On 01.02.2013, at 10:14, todor.dimitrov <[email protected]> wrote:
>
> > I'll try putting together a small sample project.
> >
> > On 01.02.2013, at 10:11, Romain Manni-Bucau <[email protected]>
> wrote:
> >
> >> Can you share a sample please?
> >>
> >> *Romain Manni-Bucau*
> >> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> >> *Blog: **http://rmannibucau.wordpress.com/*<
> http://rmannibucau.wordpress.com/>
> >> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> >> *Github: https://github.com/rmannibucau*
> >>
> >>
> >>
> >> 2013/2/1 todor.dimitrov <[email protected]>
> >>
> >>> Hi,
> >>>
> >>> I've just tried build "apache-tomee-1.5.2-20130201.041145-56-plus.zip"
> >>> from Feb 1. The described problem does not occur any more.
> Unfortunately,
> >>> the changes seems to break another functionality. I have a WeSocket
> >>> servlet, which also injects a SessionScoped bean:
> >>>
> >>> @WebServlet(urlPatterns = "/events")
> >>> public class WebSocket extends WebSocketServlet {
> >>>
> >>>       @Inject
> >>>       @LoggedIn
> >>>       private Instance<User> currentUser;
> >>>
> >>>       /**
> >>>        * @see
> >>>
> org.apache.catalina.websocket.WebSocketServlet#createWebSocketInbound(java.lang.String,
> >>>        *      javax.servlet.http.HttpServletRequest)
> >>>        */
> >>>       @Override
> >>>       protected StreamInbound createWebSocketInbound(String arg0,
> >>>                       HttpServletRequest request) {
> >>>
> >>>               final User user = currentUser.get();
> >>>               if (user != null) {
> >>>                       try {
> >>>                               return new Inbound();
> >>>                       } catch (JMSException ex) {
> >>>                               throw new RuntimeException(ex);
> >>>                       }
> >>>               }
> >>>               return null;
> >>>       }
> >>> ...
> >>> }
> >>>
> >>> Now I'm getting the following error:
> >>>
> >>> javax.enterprise.context.ContextNotActiveException: WebBeans context
> with
> >>> scope type annotation @SessionScoped does not exist within current
> thread
> >>>       at
> >>>
> org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:351)
> >>>       at
> >>>
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:143)
> >>>       at
> >>>
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:114)
> >>>       at
> >>>
> org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:108)
> >>>       at
> >>>
> de.technology.serviceportal.backend.security.Login_$$_javassist_3.getLoggedInUser(Login_$$_javassist_3.java)
> >>>       at sun.reflect.GeneratedMethodAccessor46.invoke(Unknown Source)
> >>>       at
> >>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >>>       at java.lang.reflect.Method.invoke(Method.java:601)
> >>>       at
> >>>
> org.apache.webbeans.inject.InjectableMethods.doInjection(InjectableMethods.java:139)
> >>>       at
> >>>
> org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:161)
> >>>       at
> >>>
> org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:123)
> >>>       at
> >>>
> org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:233)
> >>>       at
> >>>
> org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:77)
> >>>       at
> >>>
> org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:133)
> >>>       at
> >>>
> org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:180)
> >>>       at
> >>>
> org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:70)
> >>>       at
> >>>
> org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:132)
> >>>       at
> >>>
> org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:872)
> >>>       at
> >>>
> org.apache.webbeans.inject.instance.InstanceImpl.get(InstanceImpl.java:131)
> >>>       at
> >>>
> de.technology.serviceportal.backend.eventing.WebSocket$Inbound.onTextMessage(WebSocket.java:163)
> >>>       at
> >>>
> org.apache.catalina.websocket.MessageInbound.onTextData(MessageInbound.java:74)
> >>>       at
> >>>
> org.apache.catalina.websocket.StreamInbound.doOnTextData(StreamInbound.java:186)
> >>>       at
> >>>
> org.apache.catalina.websocket.StreamInbound.onData(StreamInbound.java:134)
> >>>       at
> >>>
> org.apache.coyote.http11.upgrade.UpgradeProcessor.upgradeDispatch(UpgradeProcessor.java:83)
> >>>       at
> >>>
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:587)
> >>>       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:722)
> >>>
> >>>
> >>> Best,
> >>>
> >>> Todor
> >>>
> >>>
> >>> With the TomEE 1.5.1 release this works just fine.
> >>>
> >>>
> >>> On 31.01.2013, at 09:34, Romain Manni-Bucau <[email protected]>
> wrote:
> >>>
> >>>> double post?
> >>>>
> >>>> *Romain Manni-Bucau*
> >>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>*
> >>>> *Blog: **http://rmannibucau.wordpress.com/*<
> >>> http://rmannibucau.wordpress.com/>
> >>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau*
> >>>> *Github: https://github.com/rmannibucau*
> >>>>
> >>>>
> >>>>
> >>>> 2013/1/31 Todor Dimitrov <[email protected]>
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> it seems there is a problem with the session thread-locals, which are
> >>> not
> >>>>> being cleared when a HTTP request ends. Please have a look at this
> >>>>> OpenWebBeans thread for further details:
> >>>>>
> >>>>>
> >>>>>
> >>>
> http://mail-archives.apache.org/mod_mbox/openwebbeans-user/201301.mbox/%[email protected]%3e
> >>>>>
> >>>>>
> >>>>> Best,
> >>>>>
> >>>>> Todor
> >>>
> >>>
> >
>
>

Reply via email to