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