编程语言
首页 > 编程语言> > Java-与glassfish共享多个Web项目的ejb 3

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教程

> Packaging Applications

> EJB3实战

> Packaging EJB 3 Applications

标签:ejb-3-1,glassfish,java,java-ee
来源: https://codeday.me/bug/20191105/1997141.html