【问题标题】:JBoss 6 - Deploy ejb in war packagingJBoss 6 - 在战争包装中部署 ejb
【发布时间】:2011-07-09 22:46:35
【问题描述】:
我正在尝试使用新的 EJB3.1 功能,可以在其中部署打包在 .war 文件中的 EJB。
我正在使用 Maven 2.2.1 打包 EJB 模块,然后将 ejb jar 放入 war 模块中(作为依赖项)。最终的战争包含一个没有内容的简单 web.xml,以及 lib 目录中的 ejb jar 库。但是,尽管应用程序已正确部署,但容器无法识别带注释的 ejb (@Stateless)。我没有 ejb-jar.xml 描述符(我相信它在 EJB3 中是可选的)。
如果我自己部署 ejb jar(通过将其放在 JBoss 的部署目录中),它会部署一个分配的 jndi 名称。
我错过了什么吗?
【问题讨论】:
标签:
jboss
jakarta-ee
war
ejb-3.1
jboss6.x
【解决方案1】:
我发现了这个问题。我的 web.xml 是 2.4 版本:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
但是,要在 war 包中部署 EJB,它至少需要为 3.0:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
这主要是因为我使用 J2EE Maven 原型创建我的战争模块。