2015-10-26 8 views
5

मैं निम्न त्रुटिजैक्सन-डाटाबेस संस्करण विसंगति के कारण सीरियलाइजेशन त्रुटियां?

java.lang.NoSuchFieldError: WRITE_DURATIONS_AS_TIMESTAMPS 
    at com.fasterxml.jackson.datatype.joda.ser.DurationSerializer.<init>(DurationSerializer.java:28) 
    at com.fasterxml.jackson.datatype.joda.ser.DurationSerializer.<init>(DurationSerializer.java:25) 
    at com.fasterxml.jackson.datatype.joda.JodaModule.<init>(JodaModule.java:45) 

मैं क्या जैक्सन-डेटाप्रकार-Joda के संस्करण उपलब्ध हैं देखने के लिए जाँच की में चल रहा हूँ। ऐसा प्रतीत होता है कि मेवेन ने सभी संस्करण विसंगतियों को छोड़ दिया है।

कोई अन्य कारण यह धारावाहिक त्रुटियों का कारण बन सकता है?

उत्तर

3

मैं इसे निम्नलिखित निर्भरता का उपयोग कर के रूप में इस निर्भरता का इस्तेमाल किया किसी अन्य संस्करण अधिरोहित है के द्वारा हल किया गया:

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-joda</artifactId> 
    <version>2.5.3</version> 
</dependency> 
9

समस्या यह है कि Maven निर्भरता के बीच आप जैक्सन-डेटाप्रकार-Joda और जैक्सन-DataBind की असंगत संस्करण है (ध्यान रखें कि यह एक सकर्मक एक हो सकता है) है। इस अर्थ में असंगत है कि जैक्सन-डाटाबेस का सीरियलाइजेशन फीचर कक्षा WRITE_DURATIONS_AS_TIMESTAMPS फ़ील्ड गुम है। क्या निर्भरता Maven आप टर्मिनल में निम्न आदेश चला सकते हैं लाता है देखने (या आप खोज और Maven निर्भरता वृक्ष विश्लेषण करने के लिए एक IDE के Maven प्लग का उपयोग कर सकते):

mvn dependency:tree | grep databind 

परिणाम संभवत: की तरह कुछ हो जाएगा:

[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.4.1:compile 

पाठ्यक्रम के संस्करण भिन्न हो सकते हैं, लेकिन महत्वपूर्ण बात यह है कि WRITE_DURATIONS_AS_TIMESTAMPS क्षेत्र है संस्करण के बाद से ही उपलब्ध है 2,5

आप इस प्रकार का सकर्मक निर्भरता को बाहर कर सकते हैं:

<dependency> 
    <groupId>group.id</groupId> 
    <artifactId>artifact-id</artifactId> 
    <version>${artifact.version}</version> 
    <exclusions> 
    <exclusion> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

यदि यह एक सकर्मक निर्भरता आप जैक्सन-DataBind के संस्करण को अद्यतन करने की जरूरत नहीं है।

0

मैं एक ही त्रुटि थी। मैंने वेब-आईएनएफ/lib/के तहत सभी जैक्सन * 2.7.0 पुस्तकालयों को शामिल किया था और मुझे अभी भी वह त्रुटि मिल रही थी। मैं वाइल्डफ्लाई 8.2 का उपयोग कर रहा हूं और इसमें मॉड्यूल के तहत जैकसन 2.4.1 पुस्तकालय थे और किसी भी तरह से यह उस स्थान से 2.4.1 जार लोड कर रहा था। इसलिए मुझे उन्हें मैन्युअल रूप से 2.7.0 में अपग्रेड करना पड़ा जो इस मुद्दे को हल करता था। मैं इस धारणा के तहत था कि अगर मैंने तैनाती विन्यास फाइल में जैक्सन जार लोड करने के लिए इसका जिक्र नहीं किया है, तो यह वाइल्डफ्लाई जार लोड नहीं करेगा। शायद कि मुझसे गलती हुई थी।

संबंधित मुद्दे