当存在 ejb-jar.xml 时,EJB3 注释被忽略
EJB3 annotations get ignored when ejb-jar.xml is present
我有一个当前包含 EJB 2.1 会话 Bean 的应用程序。我想尽可能将它们传输到 EJB 3.1 注释。
不幸的是,这对所有人来说都是不可能的,所以我需要为那些我无法使用注释的文件维护 ejb-jar.xml
文件。
我已经添加了 beans.xml
文件,但只要存在 ejb-jar.xml
文件,注释就会被忽略。一旦我删除它,注释就会起作用。
如何配置我的应用程序以使用存在的注释并仅将 ejb-jar.xml
文件用于其中配置的内容。据我对文档的理解,无论如何这应该是正常情况。
当您将应用程序从 EJB-2.1 转移到 EJB-3.1 时,您必须检查是否将 ejb-jar.xml
的版本也设置为 3.1。
使用 the xsd 中的 header:
<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
可能还需要其他设置,但这是另一个问题的主题。
我有一个当前包含 EJB 2.1 会话 Bean 的应用程序。我想尽可能将它们传输到 EJB 3.1 注释。
不幸的是,这对所有人来说都是不可能的,所以我需要为那些我无法使用注释的文件维护 ejb-jar.xml
文件。
我已经添加了 beans.xml
文件,但只要存在 ejb-jar.xml
文件,注释就会被忽略。一旦我删除它,注释就会起作用。
如何配置我的应用程序以使用存在的注释并仅将 ejb-jar.xml
文件用于其中配置的内容。据我对文档的理解,无论如何这应该是正常情况。
当您将应用程序从 EJB-2.1 转移到 EJB-3.1 时,您必须检查是否将 ejb-jar.xml
的版本也设置为 3.1。
使用 the xsd 中的 header:
<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
可能还需要其他设置,但这是另一个问题的主题。