当ejb-jar.xml存在时,EJB3注释会被忽略

时间:2015-08-14 09:57:00

标签: java java-ee java-ee-6 ejb-3.1 ejb-2.x

我有一个当前由EJB 2.1会话Bean组成的应用程序。我希望尽可能将它们传输到EJB 3.1注释。

不幸的是,这对所有人来说都是不可能的,所以我需要为不能使用注释的文件维护ejb-jar.xml文件。

我添加了beans.xml文件,但只要我有ejb-jar.xml文件,注释就会被忽略。一旦我将其删除,注释就会起作用。

如何配置我的应用程序以使用存在的注释,并仅将ejb-jar.xml文件用于其中配置的内容。据我了解文档,无论如何这应该是正常的情况。

1 个答案:

答案 0 :(得分:2)

当您将应用程序从EJB-2.1转移到EJB-3.1时,您必须检查是否也将ejb-jar.xml的版本设置为3.1。

使用the xsd中的此标头:

<ejb-jar 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/ejb-jar_3_1.xsd"
      version="3.1">

然后也会考虑您的注释。

根本不需要beans.xml。它是启用CDI所必需的(如果您只引用其他bean中的bean,则不需要它),请查看this post它是什么以及何时需要它。

您可能还需要对ejb-jar.xml进行其他设置,但这是另一个问题的主题。