ไม่พบตัวเขียนเนื้อหาข้อความสำหรับคลาสตอบกลับ ArrayList [jboss 7]

แอปพลิเคชันของเราพร้อมบริการพักผ่อนทำงานได้ดีบน 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 ใช้ไลบรารีแอปพลิเคชันได้อย่างไร


person user1536040    schedule 15.11.2016    source แหล่งที่มา


คำตอบ (1)


ฉันพบว่าการยกเว้นระบบย่อย jaxrs โดยรวมใน jboss 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>
person user1536040    schedule 15.11.2016