【问题标题】:CXF JCA Connector in JBOSS 7.1 (or 6.1) not supported?不支持 JBOSS 7.1(或 6.1)中的 CXF JCA 连接器?
【发布时间】: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


    【解决方案1】:

    所以我发现有一个解决方案,正如我在编辑我的问题时提到的那样,它通过以下设置在 JBoss 中禁用(或只是设置为不因错误而失败)存档验证:

    <subsystem xmlns="urn:jboss:domain:jca:1.1">
        <archive-validation enabled="false" />
    </subsystem>
    

    根据我的发现,这是由于缺少 CXF 网站上的 JCA 规范实现。并且在较新的 JBoss 版本中更严格的验证导致了这个问题。

    有关更多信息,请参阅下面的 cmets this JBoss bug report

    【讨论】:

    • 验证者没有给出完美的消息。我得到一个“A ResourceAdapter 必须是非空实例”。这是由 rar 中缺少 jar 引起的 ..
    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2011-03-11
    • 2011-10-08
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多