0
當我使用@EJB或JNDI查找使用InitialContext注入ejb時,我正面臨着stackoverflow錯誤。任何人都可以共享kow從JBoss AS 6中的SevletContextListener注入/查找EJB。如何從JBoss AS 6中的SevletContextListener注入/查找EJB
謝謝!
當我使用@EJB或JNDI查找使用InitialContext注入ejb時,我正面臨着stackoverflow錯誤。任何人都可以共享kow從JBoss AS 6中的SevletContextListener注入/查找EJB。如何從JBoss AS 6中的SevletContextListener注入/查找EJB
謝謝!
對於查找,你可以做同樣的事情到這個
InitialContext ctx =new InitialContext();
EjbServiceInterface service= (EjbServiceInterface) ctx.lookup("java:global/earName/ejbJarName/EjbServiceInterfaceImpl!com.example.EjbServiceInterface");
在這個例子中,EjbServiceInterface是EjbServiceInterfaceImpl,它實現了EJB服務的遠程接口。
jndi字符串取決於您正在查找的位置。對於本地查找,您不必指定earName和ejbJarName ..我建議查看您的啓動日誌,它顯示jndi名稱的位置可用於您的ejb,然後選擇您需要的那個。
感謝您的回覆。我嘗試了同樣的方法,但得到了stackoverflow錯誤。 17:12:33,614 ERROR [[/ app]]配置類com.app.web.CustomContextListener的應用程序偵聽器時出錯:java.lang.StackOverflowError \t at com.sun.naming.internal.VersionHelper12 $ 6.run(VersionHelper12.java :182)[:1.7.0_07] \t at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_07] \t at com.sun.naming.internal.VersionHelper12.getContextClassLoader(VersionHelper12.java:179) [:1.7.0_07] \t at com.sun.naming.internal.ResourceManager.getFactory(ResourceManager.java:403)[:1.7.0_07] – 2014-10-20 10:25:08
您能告訴我們您的代碼嗎? – mendieta 2014-10-20 15:05:11
當我按照您在評論中提到的方式檢查日誌時,JNDI名稱不同。當我使用下面的代碼時問題得到解決:@EJB(mappedName =「app/EventStreamBean/local-app.eventStream.EventStreamLocal」) private EventStreamLocal eventStreamBean;謝謝! – 2014-10-21 05:44:12