没有为响应类ArrayList找到消息正文编写器[jboss 7]

时间:2016-11-15 00:46:15

标签: java rest cxf jboss7.x resteasy

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

我们遇到的异常是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有一个简单的api,它与cxf库相冲突。

我在网上尝试了很多选项以排除重复,但它没有帮助。

如何排除jboss嵌入式库容易和其他休息组件强制jboss使用应用程序库?

1 个答案:

答案 0 :(得分:0)

我发现在jboss 7中排除了整个jaxrs子系统,帮助我强迫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>