के साथ स्प्रिंग बैच सीरियलाइजेशन समस्याएं मेरे पास स्प्रिंग-बैच एप्लिकेशन है जो जॉबएक्सक्यूशन कॉन्टेक्स्ट में कई जावा 8 टाइम ऑब्जेक्ट्स संग्रहीत करता है। मैं अपने जॉब रेस्पोजिटरी के लिए डिफ़ॉल्ट सीरिएलाइज़र का उपयोग कर रहा हूं। BATCH_STEP_EXECUTION_CONTEXT तालिका में लिखे गए डेटा को वापस पार्स करते समय मुझे अपवाद का सामना करना पड़ रहा है। मैं एक LocalDateTime कि के रूप में जमा किया जा रहा है:जावा 8 टाइम पैकेज
{
"@resolves-to": "java.time.Ser",
"byte": [5,
8,
18,
8,
45,
50],
"int": [2015,
10000000]
}
यह एक अपवाद की ओर जाता है जब मैं पिछले JobExecution डेटा से पढ़ने की कोशिश:
Caused by: java.lang.ClassCastException: java.lang.Byte cannot be cast to java.lang.Integer
at com.thoughtworks.xstream.core.util.CustomObjectInputStream.readInt(CustomObjectInputStream.java:144) ~[xstream-1.4.8.jar:1.4.8]
at java.time.LocalDate.readExternal(LocalDate.java:2070) ~[na:1.8.0_45]
at java.time.LocalDateTime.readExternal(LocalDateTime.java:2002) ~[na:1.8.0_45]
at java.time.Ser.readInternal(Ser.java:259) ~[na:1.8.0_45]
at java.time.Ser.readExternal(Ser.java:246) ~[na:1.8.0_45]
at com.thoughtworks.xstream.converters.reflection.ExternalizableConverter.unmarshal(ExternalizableConverter.java:167) ~[xstream-1.4.8.jar:1.4.8]
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ~[xstream-1.4.8.jar:na]
... 97 common frames omitted
मैं वसंत बैच 3.0.5 का उपयोग कर रहा हूँ। विज्ञप्ति। मैंने xstream (1.4.8) और जेटीसन (1.3.7) के नवीनतम संस्करणों में अपग्रेड करने का भी प्रयास किया है, लेकिन मुझे एक ही अपवाद मिलता है।
यह एक्सस्ट्रीम (link) के साथ एक ज्ञात समस्या प्रतीत होता है। सुझाव XStream के भीतर एक कस्टम कनवर्टर रजिस्टर करना था। हालांकि, एक कनवर्टर पंजीकृत करने के लिए वसंत-बैच वास्तविक एक्सस्ट्रीम ऑब्जेक्ट का पर्दाफाश नहीं करता है। आगे बढ़ने के बारे में कोई सुझाव?
क्या आपने कॉन्फ़िगरेशन क्लास पर @EnableBatchProcessing एनोटेशन जोड़ा है? –