我想弄清楚如何配置我的战争,以便它在JBoss中成功部署我的所有EJB(EJB 3)。这些EJB可以在战争中的多个罐子中找到。在同一场战争中的JBoss AS 6多个ejb罐子 - 如何配置?
你能告诉我一个关于如何配置这个的例子吗?换句话说,我需要编辑的文件是什么,以便JBoss知道有多个包含EJB的jar。
谢谢!
我想弄清楚如何配置我的战争,以便它在JBoss中成功部署我的所有EJB(EJB 3)。这些EJB可以在战争中的多个罐子中找到。在同一场战争中的JBoss AS 6多个ejb罐子 - 如何配置?
你能告诉我一个关于如何配置这个的例子吗?换句话说,我需要编辑的文件是什么,以便JBoss知道有多个包含EJB的jar。
谢谢!
您应该使用EAR归档来部署多模块应用程序(包含许多EJB)。 WAR文件和目录的JBoss部署者不会分析任何EJB的WEB-INF/lib目录,也不会部署它。只有简单的类将从这个目录加载。当然,您可以单独部署所有EJB。
对于EAR归档,您应该指定application.xml文件,并且您可以使用部署信息指定jboss-app.xml。例如,
<application>
<display-name>My Application</display-name>
<module>
<web>
<web-uri>web-app.war</web-uri>
<context-root>/myapp</context-root>
</web>
</module>
<module>
<ejb>ejb-app.jar</ejb>
</module>
</application>
这里是一个link到JBoss 4服务器配置指南。我在AS 6的文档中没有找到相同的内容。但是,主要的部署者概念可能相同。
您不需要做任何特殊的事情来将EJB部署到war文件中。只要你的POJO注有@Stateless
/@Stateful
它应该没问题。您显然需要将您的EJB jar文件放入WEB-INF/lib
,这应该足够了。
您是否看到任何特定错误或遇到问题?如果是这样,你使用的是什么JBoss版本?如果你用这些信息更新你的问题,我可以相应地更新我的答案。
对于J2EE 6(!)(请参阅Weld作为参考实现),您可以使用WAR部署EJB。请参阅[在WAR模块中打包企业Bean](http://docs.oracle.com/javaee/6/tutorial/doc/gipio.html#gippi) – vim 2012-01-10 12:56:51