問題:如果同時使用EJB注入,則在一個項目中使用REST服務和SIP Servlet會導致異常。sip servlet/rest服務項目中的Mobicent EJB注入
哪些步驟會重現該問題?
在項目添加SIP Servlet和REST服務(REST服務經由類延伸的應用活化並與註釋@
ApplicationPath
,這是Java EE 6「沒有XML」的方式,激活JAX-RS)使用REST服務和/或SIP servlet不會產生任何錯誤。
通過@EJB向項目添加一個注入服務。
在下列異常使用REST服務結果:
錯誤:
Exception sending request destroyed lifecycle event to listener instance of class org.jboss.weld.servlet.WeldListener: java.lang.NullPointerException
at org.jboss.weld.context.AbstractBoundContext.deactivate(AbstractBoundContext.java:71) [weld-core-1.1.8.Final.jar:2012-04-29 10:45]
at org.jboss.weld.context.http.HttpRequestContextImpl.deactivate(HttpRequestContextImpl.java:86) [weld-core-1.1.8.Final.jar:2012-04-29 10:45]
at org.jboss.weld.servlet.WeldListener.requestDestroyed(WeldListener.java:103) [weld-core-1.1.8.Final.jar:2012-04-29 10:45]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) [jbossweb-7.0.16.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.16.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.16.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.16.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.16.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679) [jbossweb-7.0.16.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931) [jbossweb-7.0.16.Final.jar:]
at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_37]
我使用:
- Mobicents:MSS-2.0.0.FINAL- jboss-as-7.1.2.Final
- 操作系統:Mac OS X 10.6.8,Ubuntu 12.04,Windows 8
我也發佈了問題到Google Code,其中一個測試項目已上傳,可用於運行實際的測試用例。 src/test/java中有一個正在調用已部署的REST服務的測試文件。在原來的項目中,這應該導致上面的錯誤。
如果未激活SIP Servlet(例如,通過重命名sip.xml),則在調用REST服務時不會發生錯誤。
如果SIP Servlet已激活並且注入的服務HelloWorldService
已刪除,那麼調用REST服務時也不會有錯誤。
你好,有人解決了這個?我在融合的WEB/SIP應用程序中面臨同樣的問題。如果該應用程序甚至有一個sip servlet,那麼任何servlet或受管bean中的EJB注入都將不起作用。我將MSS-JBoss 7.1.2焊接核心升級到了weld-core-1.1.16,但沒有任何區別。謝謝。 – icordoba 2013-10-27 22:51:20