Java-与glassfish共享多个Web项目的ejb 3
作者:互联网
我目前有一个包含EJB和WAR的J2EE项目.一切顺利,而最后一个EAR中只捆绑了一个WAR和一个EJB模块.我现在需要使用相同的EJB模块开发另一个WAR.
因此,我在新WAR的库中添加了EJB模块.问题是,当我尝试部署与两个WAR和共享EJB捆绑在一起的EAR时,出现以下异常:
引起原因:java.lang.RuntimeException:为EJB绑定JNDI名称com.alex.ejb.MyBeanRemote__3_x_Internal_RemoteBusinessHome__时出错:
当我从第二个WAR的库中删除EJB时,一切又恢复了.
有什么我想念的吗?
最后,真正的问题是“如何在多个Web应用程序之间共享EJB?”
感谢帮助
解决方法:
The problem is when I try to deploy the EAR bundled with the two WAR and the shared EJB, I get the following exception (…)
那是因为bean被两次部署,导致命名冲突.实际上,这不是使用EAR打包时应该打包应用程序的方式.
Finally, the real question is “how to share an EJB within multiple web applications ?”
不要将EJB模块放在Web模块的WEB-INF / lib文件夹中,您的EAR应该具有以下结构:
myear.ear |-- META-INF | |-- application.xml | `-- sun-application.xml (optional) |-- myejbmodule1-ejb.jar |-- ... |-- myejbmoduleN-ejb.jar |-- mywebapp1-war.war `-- mywebapp2-war.war
资源资源
> Java EE 6教程
> EJB3实战
> Packaging EJB 3 Applications
标签:ejb-3-1,glassfish,java,java-ee 来源: https://codeday.me/bug/20191105/1997141.html