Unable to inject a RequestScoped bean into a WebSocket server endpoint implementation
Issue
When trying to expose a WebSocket server endpoint which uses an injected RequestScoped bean. It seams that from a WebSocket server endpoint it is not possible to access to the request scope where the managed bean lives.
The exception that has been raised is as follows:
[org.jboss.example.websocket.WebSocketServerEndpoint] and the following error occurred: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:608) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:79) [weld-core-1.1.28.Final-redhat-1.jar:1.1.28.Final-redhat-1]
at org.jboss.example.managedbeans.HelloManagedBean$Proxy$_$$_WeldClientProxy.sayHello(HelloManagedBean$Proxy$_$$_WeldClientProxy.java) [classes:]
at org.jboss.example.websocket.WebSocketServerEndpoint.onOpen(WebSocketServerEndpoint.java:33) [classes:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_25]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_25]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_25]
at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0_25]
at org.apache.tomcat.websocket.pojo.PojoEndpointBase.doOnOpen(PojoEndpointBase.java:68) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.tomcat.websocket.pojo.PojoEndpointServer.onOpen(PojoEndpointServer.java:78) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.init(WsHttpUpgradeHandler.java:132) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:355) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:911) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at org.apache.tomcat.util.net.NioEndpoint$ChannelProcessor.run(NioEndpoint.java:936) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_25]
at org.apache.tomcat.util.net.NioEndpoint$DefaultThreadFactory$1$1.run(NioEndpoint.java:1249) [jbossweb-7.5.4.Final-redhat-1.jar:7.5.4.Final-redhat-1]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_25]
Environment
- Red Hat JBoss Enterprise Application Platform 6.4.0 Beta
- Red Hat JBoss Enterprise Application Platform 6.3.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.