java - 从 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)
解决方案
非常有趣的问题。问题如下:
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。
例外
我的猜测是解析器在读取标签时期待这个标准,因为它没有发现异常被抛出。还要注意养育子女,因为与
问候
推荐阅读
- tensorflow - TimeDistributed(Dense) vs Dense in seq2seq
- 8051 - 如何使用 Bascom 8051 连续控制舵机
- reactjs - 我无法安装反应!我怎样才能解决这个问题?
- typescript - 在 fp-ts 中链接一些异步任务,保留每个任务的结果
- arrays - 如何代表创建的结果计数角色?
- python - 损失函数中的所有变量都必须是 pytorch 中的 grads 张量吗?
- c++ - 从 1.0.2 迁移到 1.1.1 时出现 OpenSSL BIGNUM 问题
- c - 斐波那契动态内存管理
- java - 使用spring boot编码时如何让IDEA显示更详细的文档?
- sql - postgresql:有条件加入,没有重复