2016-11-15 21 views
0

我们的应用程序和restful服务在jboss 6上工作正常,升级到jboss 7后,其他服务都无法正常工作。我们遇到没有发现响应类ArrayList [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有一些与cxf库相冲突的其他简单api。

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

如何排除jboss嵌入式库其余的简单和其他rest组件来强制jboss使用应用程序库?

回答

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>