मेरे पास एक प्रोजेक्ट है जो स्प्रिंग ओएक्सएम टाइगर। मुझे एक मालिकाना ढांचे को अपग्रेड करना है, जो स्प्रिंग कोर ( 4.2.8), और मुझे संगतता समस्या है।

चूंकि फ्रेमवर्क स्प्रिंग फ्रेमवर्क को 3.0.x से 4.2.8 तक अपग्रेड कर रहा है, इसलिए मैं निम्नलिखित अपवाद पर ध्यान देता हूं:

java.lang.NoSuchMethodError: org.springframework.util.ClassUtils.forName(Ljava/lang/String;)Ljava/lang/Class;
at org.springframework.oxm.jaxb.JaxbUtils.<clinit>(JaxbUtils.java:44)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.createJaxbContext(Jaxb2Marshaller.java:272)
at org.springframework.oxm.jaxb.AbstractJaxbMarshaller.afterPropertiesSet(AbstractJaxbMarshaller.java:125)

वास्तव में ऐसा होता है कि जैक्सबीयूटिल्स स्प्रिंग कोर निर्भरता से ClassUtils.forName(Ljava/lang/String;) को कॉल कर रहा है:

Class Jaxbutils from Spring Oxm 1.5.8:

static {
    try {
        ClassUtils.forName(JAXB_2_CLASS_NAME);
        jaxbVersion = JAXB_2;
    }
    catch (ClassNotFoundException ex) {
        // leave JAXB 1 as default
    }
}

हालाँकि, स्प्रिंग कोर 4.2.8.RELEASE अब यह हस्ताक्षर प्रदान नहीं करता है:

Class ClassUtils from Spring Core 4.2.8:

public static Class<?> forName(String name, ClassLoader classLoader) throws ClassNotFoundException, LinkageError {

फिलहाल, मुझे स्ट्रिंगसोर्स, XPathOperations, Jaxb2Marshaller, आदि का उपयोग करने के लिए स्प्रिंग ओएक्सएम टाइगर की आवश्यकता है ... लेकिन यह वास्तव में स्प्रिंग कोर के वर्तमान संस्करण के साथ काम नहीं करेगा।

मुझे स्प्रिंग कोर 4.2.8 और स्प्रिंग ओएक्सएम टाइगर के दूसरे संस्करण का उपयोग करके मार्शलिंग/अनमर्शलिंग और XPath संचालन का उपयोग करने के लिए कोई कामकाज नहीं मिला।

मैं इस समस्या को हल करने के लिए क्या कर सकता हूँ? मैं एक तरह से फंस गया हूँ। क्या स्प्रिंग ओएक्सएम का उपयोग न करने और अभी भी XPath और Jaxb2Marshallers के साथ काम करने का कोई तरीका है?

शुक्रिया,

0
Yassine Badache 7 पद 2018, 18:23

1 उत्तर

सबसे बढ़िया उत्तर

शायद देर हो चुकी है, लेकिन क्या आपने org.springframework.ws:spring-oxm के बजाय org.springframework:spring-oxm का उपयोग करने और स्प्रिंग-ऑक्सम-टाइगर से पूरी तरह छुटकारा पाने की कोशिश की?

1
R.Litto 11 मार्च 2019, 17:35