JBoss 6 - 在war包中部署ejb

3

我正在尝试使用新的EJB3.1功能,其中可以在.war文件中部署打包好的EJB。

我使用Maven 2.2.1打包EJB模块,然后将ejb jar作为依赖项放入war模块中。最终的war包含一个简单的web.xml,没有内容,并且在lib目录中包含ejb jar库。但是,虽然应用程序已正确部署,但容器未能识别带注释的ejb(@Stateless)。我没有ejb-jar.xml描述符(我认为在EJB3中是可选的)。

如果我单独部署ejb jar(通过将其放入JBoss的deploy目录中),它会被部署并分配一个jndi名称。

我错过了什么吗?

1个回答

6

我找到了问题所在。我的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">

然而,要将EJB部署在war包中,至少需要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原型创建我的war模块。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接