2012-10-04 26 views
5

एक जैक्सन मॉड्यूल का पंजीयन मैं एक काम पर स्प्रिंग डाटा बाकी example project आधारित परियोजना है, और मैं एक Jackson module इस wiki page के आधार पर का उपयोग कर कस्टम क्रमांकन करने के लिए कोशिश कर रहा हूँ।के लिए स्प्रिंग डाटा बाकी

public class CustomModule extends SimpleModule { 
    public static Logger logger = LoggerFactory.getLogger(CustomModule.class); 

    public CustomModule() { 
     super("CustomModule", new Version(1, 0, 0, null)); 
    } 

    @Override 
    public void setupModule(SetupContext context) { 
     logger.debug("CustomModule.setupModule"); 
     SimpleSerializers simpleSerializers = new SimpleSerializers(); 
     simpleSerializers.addSerializer(new CustomDateTimeSerializer()); 
     context.addSerializers(simpleSerializers); 
    } 

} 

wiki page का कहना है::

किसी भी मॉड्यूल सेम अपने ApplicationContext के दायरे के भीतर घोषित निर्यातक द्वारा उठाया और उसके ObjectMapper साथ पंजीकृत किया जाएगा

यहाँ मेरी जैक्सन मॉड्यूल है।

मैं अभी भी वसंत के लिए बहुत नया हूं, इसलिए मैं बस गलत जगह पर अपना मॉड्यूल बीन परिभाषा डाल सकता हूं; वर्तमान में यह src/main/resources/META-INF/spring-data-rest/shared.xml में है, जो repositories-export.xml से आयात किया जाता है:

<bean id="customModule" class="org.hierax.wpa.schema.mapping.CustomModule" /> 

मैं setupModule में लॉग बयान नहीं दिख रहा है, लेकिन मैं लोग इन अन्य वर्गों के लिए उत्पादन में एक ही पैकेज में दिख रहा है।

मैं स्प्रिंग डेटा REST 1.0.0.RC2 का उपयोग कर रहा हूं। -डेटा-बाकी वसंत

+0

आप कभी भी इस के लिए एक समाधान मिला? –

+0

नहीं, लेकिन मैंने स्प्रिंग डेटा फ़ोरम पर पूछा है, और शायद इसे वहां एक उत्तर मिलेगा: http://forum.springsource.org/showthread.php?130782- प्रसंस्करण- डेटा-REST-registering-a- जैक्सन-मॉड्यूल-फॉर सीरियलाइजेशन –

उत्तर

4

मैं समाधान विकी प्रविष्टि है कि आप से जुड़ा हुआ है (हालांकि शायद यह इस ढेर अतिप्रवाह पोस्ट के बाद से बदल गया है) में वर्णित किए

उपयोग करते हुए मेरे उदाहरण में मैं उपयोग कर रहा था सफलता मिली है [email protected]

आपका कोड सही प्रतीत होता है और बशर्ते कि आपका एप्लिकेशन संदर्भ सही तरीके से लोड हो रहा है, मुझे इसके लिए कोई कारण नहीं दिख रहा है।

मैं अपने सरल मॉड्यूल जो एक तारीख फ़ॉर्मेटर के उपयोग मिसाल संलग्न किया है:

@Component 
public class JsonMarshallingConfigModule extends SimpleModule { 

    public JsonMarshallingConfigModule() { 
    super("JsonMarshallingConfigModule", new Version(1, 0, 0, "SNAPSHOT")); 
    } 

    @Override public void setupModule(SetupContext context) { 
    context.getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")); 
    } 
} 

शायद यह अगर यह वास्तव में जैक्सन मॉड्यूल है कि समस्या या वसंत-डेटा- है की रूपरेखा तैयार करने के लिए इस्तेमाल किया जा सकता है बाकी mvcweb।

+0

आपके समाधान को साझा करने के लिए धन्यवाद! मैंने हाल ही में [email protected] पर अपडेट किया है और उदाहरण प्रोजेक्ट में कोड-आधारित कॉन्फ़िगरेशन में माइग्रेट किया है, और अब मैं कस्टम मॉड्यूल पर @ कॉम्पोनेंट के अतिरिक्त काम कर रहा हूं। –

+0

इसे काम नहीं कर सकता है। घटक लोड किया गया है, मैं उदाहरण बना सकता हूं, हालांकि, सेटअप मॉड्यूल() लागू नहीं किया गया है। क्यूं कर? –

3

वर्तमान में, यह इस तरह स्प्रिंग बूट में एक मॉड्यूल अनुकूलित करने के लिए संभव है:

@Bean 
public Module customModule() { 
    return new CustomModule(); 
} 

संदर्भ: Latest Jackson integration improvements in Spring