【发布时间】:2014-09-05 02:40:28
【问题描述】:
我们正在将我们的应用程序从 JBoss 5 迁移到 JBoss 6,但有一件事我无法弄清楚。
我们正在使用 Apache CXF-JCA 资源适配器 (CXF-JCA home page)。他们说这是实施 JCA 1.5 规范,这似乎是一个问题。由于 JBoss 正在实施 JCA 规范 1.6 版,CXF 的部署失败,原因如下:
Caused by: org.jboss.jca.validator.ValidatorException: Severity: ERROR
Section: 19.4.2
Description: A ResourceAdapter must implement a "public boolean equals(Object)" method.
Code: org.apache.cxf.jca.cxf.ResourceAdapterImpl
Severity: ERROR
Section: 19.4.2
Description: A ResourceAdapter must implement a "public int hashCode()" method.
Code: org.apache.cxf.jca.cxf.ResourceAdapterImpl
我们使用的是最新版本的 CXF-JCA(目前是 3.0.0)。如何解决它的最佳方法是什么?
更新: 我发现 JBoss 实际上支持 JCA 1.5,所以问题是 CXF 的实现违反了某些规范,而 JBoss 6 在验证方面更加严格。所以有一个解决方法:在 Jboss 配置中禁用 JCA 子系统中的验证,如下所示:
<subsystem xmlns="urn:jboss:domain:jca:1.1">
<archive-validation enabled="false" />
</subsystem>
【问题讨论】:
标签: java web-services jboss cxf