2013-01-11 63 views
9

प्रदान करने के लिए सेट है, तो मेरे पास जेबॉस 7.1.1 पर युद्ध संग्रह में जैक्स-आरएस एंडपॉइंट तैनात है। इसके JSON प्रतिक्रिया में मैं नहीं चाहता कि मेरा null फ़ील्ड नाम शामिल किया जाए, इसलिए मैंने @JsonSerialize पर रखा है।जैक्सन @ जेसनसियललाइज को जब्स 7.1.1 में अनदेखा किया गया है यदि मैवेन निर्भरता

class MyResponse { 

    private Long id; 

    @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) 
    private String name; 

    private List<String> addresses; 

    // getters and setters 
} 

मेरे pom.xml निम्नलिखित

<dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jaxrs</artifactId> 
     <version>2.3.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.jboss.resteasy</groupId> 
     <artifactId>resteasy-jackson-provider</artifactId> 
     <version>2.3.2.Final</version> 
     <scope>provided</scope> 
    </dependency> 

resteasy-jackson-provider के लिए scopeprovided पर सेट होने पर यह टिप्पणी पर ध्यान नहीं देता और JSON जवाब में null देता है। हालांकि जब मैं scope को मैवेन निर्भरता से हटा देता हूं - यह काम करता है।

पृष्ठ से https://docs.jboss.org/author/display/AS71/Implicit+module+dependencies+for+deployments ऐसा लगता है कि जैक्स-आरएस परिनियोजन मिलने पर जेबॉस को इस मॉड्यूल को स्वत: लोड करना चाहिए।

अब मुझे नहीं पता कि यह एक बग है और अगर मुझे वास्तव में इस निर्भरता को शामिल करना चाहिए (इसे provided नहीं रखना चाहिए)। या शायद मैं कुछ गलत कर रहा हूँ?

उत्तर

14

आपको जेबॉस परिनियोजन संरचना वर्णनकर्ता बनाना सुनिश्चित करना होगा।

चूंकि यह एक Maven परियोजना मुझे लगता है यह src/मुख्य/webapp/वेब-INF/jboss तैनाती-structure.xml के तहत किया जाएगा

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0"> 
    <deployment> 
    <dependencies> 
     <module name="org.codehaus.jackson.jackson-core-asl" /> 
     <module name="org.codehaus.jackson.jackson-mapper-asl" /> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

यह अनुमति देगा में निर्मित RESTEasy के लिए समर्थन और जैक्सन जेबॉस 7.1.एक्स या जेबॉस ईएपी 6.x में सही तरीके से काम करने के लिए। इस वर्णनकर्ता के बिना रीस्टेसी जेटीसन प्रदाता का उपयोग करेगा।

+0

बहुत बहुत धन्यवाद, मार्क, इसने मेरे लिए (जेबॉस ईएपी 6.3) काम किया है और मैं अपने खुश आराम कोडिंग को फिर से शुरू कर सकता हूं :) –