首页 > 解决方案 > 从 java1.5 迁移到 java1.8 时遇到意外元素“resource-ref”

问题描述

我正在将在 java 1.5 和 jboss 4.3 上运行的旧应用程序迁移到 java 1.8 和 jboss 7.2。在 jboss 7.2 上部署时,我收到与 jboss-web.xml 中 ejb-ref 下定义的资源引用相关的错误。

我能够转换应用程序的其他部分,例如将库移动到模块和 EJB 查找 jndi 中的更改,但是我无法找到使资源引用与 ejb-ref 一起使用的解决方案

<jboss-web>
     ... 
     <ejb-ref>
        <ejb-ref-name>ejb/CA_ProductEJBHome</ejb-ref-name>
        <ejb-link>ProductEJB.jar#CA_ProductEJB</ejb-link>
        <jndi-name>CA_ProductEJB</jndi-name>
        <resource-ref>
            <description>Product Database</description>
            <res-ref-name>jdbc/productDB</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <jndi-name>java:jboss/datasources/CA_productDB</jndi-name>
            <res-auth>Container</res-auth>
        </resource-ref>
    </ejb-ref> 
    ...
</jboss-web>

错误跟踪:

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[127,3]
Message: Unexpected element 'resource-ref' encountered
        at org.jboss.metadata.parser.util.MetaDataElementParser.unexpectedElement(MetaDataElementParser.java:115)
        at org.jboss.metadata.parser.ee.EJBReferenceMetaDataParser.parse(EJBReferenceMetaDataParser.java:90)
        at org.jboss.metadata.parser.ee.EnvironmentRefsGroupMetaDataParser.parseRemote(EnvironmentRefsGroupMetaDataParser.java:108)

标签: javaejbjboss7.x

解决方案


非常有趣的问题。问题如下:

Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[127,3]
Message: Unexpected element 'resource-ref' encountered
        at org.jboss.metadata.parser.util.MetaDataElementParser.unexpectedElement(MetaDataElementParser.java:115)

因此,在 EAP 6/7 中,我们需要按照命名约定修改 JNDI 名称。

JNDI 名称约定

遵循 3.2.14.2.3 中的迁移指南。运行 EJB 2.x 所需的应用程序更改 我们将转到:修改 JBoss-web.xml 文件描述符,其中描述了您必须为每个“新 JNDI 完全限定”查找格式修改:java:global 或 java:模块,或 java:app。

例外

我的猜测是解析器在读取标签时期待这个标准,因为它没有发现异常被抛出。还要注意养育子女,因为与

问候


推荐阅读