2016-11-15 20 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>