JBoss 6 - 在战争包装中部署ejb

Gon*_*gui 3 jboss war java-ee ejb-3.1 jboss6.x

我正在尝试使用新的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的deploy目录中),则会部署一个指定的jndi名称.

我在这里错过了什么吗?

Gon*_*gui 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">
Run Code Online (Sandbox Code Playgroud)

但是,对于要在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">
Run Code Online (Sandbox Code Playgroud)

这主要是因为我正在使用J2EE Maven原型创建我的war模块.