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 >>> >>> >
