我们使用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使用应用程序库?
答案 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>