未找到响应 class ArrayList [jboss 7] 的消息正文编写器

No message body writer has been found for response class ArrayList [jboss 7]

我们带有 restful 服务的应用程序在 jboss 6 上运行良好,升级到 jboss 7 后,none 其余服务正常运行。

我们遇到的异常是 http 500 内部服务器错误:

One of the restful service error is:
    INFO  - HTTP Status Code: 500
    INFO  - Web Service call execution: 1410 ms.
    INFO  - Content-Length: null
    INFO  - Content-Type: text/plain
    INFO  - Message-Body: **No message body writer has been found for response class ArrayList.**

应用程序具有以下依赖项。

<dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-bundle-jaxrs</artifactId>
            <version>2.7.8</version>
            <exclusions>
                <exclusion>
                    <groupId>com.sun.xml.bind</groupId>
                    <artifactId>jaxb-impl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.ws.rs</groupId>
                    <artifactId>javax.ws.rs-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
   <dependency>
            <groupId>javax.ws.rs</groupId>
            <artifactId>javax.ws.rs-api</artifactId>
            <version>2.0</version>
        </dependency>

分析后发现jboss有rest easy api与cxf库冲突。

我尝试了很多网上可用的选项来排除 resteasy,但没有用。

如何排除 jboss 嵌入式库 rest easy 和其他 rest 组件以强制 jboss 使用应用程序库?

我发现在 jboss 中将 jaxrs 子系统作为一个整体排除在外 7 帮助我强制 jboss 依赖我的应用程序提供的 cxf 和 javax.ws.rs-api图书馆。

我已将如下所示的文件 jboss-deployment-structure.xml 添加到 war 文件以排除 jaxrs 子系统。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <exclude-subsystems>
            <subsystem name="jaxrs" />
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>