2012-02-03 5 views
9

मौजूदा जैक्सबी माइग्रेट कर रहा है (jaxb1.0.1 दोनों का उपयोग करता है और जैक्सबी 2.0.5) आवेदन (जेडके 5 के साथ जेबॉस 4.3 पर) जैक्सबी 2.1.10 (जेडीके 6 के साथ आपूर्ति, जेडीके 1.6.0_30 अपडेट करें)।SAXException2 का कारण क्या है: "com.foo.Bar" का उदाहरण "java.lang.Object" को प्रतिस्थापित कर रहा है, लेकिन "com.foo.Bar" एक अनाम प्रकार

मैं ग्राहक द्वारा प्रदत्त स्कीमा को संशोधित नहीं कर सकता।

मैंने सूर्य आरआई से jaxws20, jwsdp, jaxp और jaxb jars के सभी संदर्भ हटा दिए हैं और केवल jdk 6 द्वारा प्रदान किए गए जार का उपयोग कर रहा हूं।

कोई पॉइंटर्स ??

Caused by: com.sun.istack.SAXException2: Instance of “com.foo.Bar” is substituting “java.lang.Object”, but “com.foo.Bar” is bound to an anonymous type [email protected] 
at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:247) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:662) 
at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:165) 
at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:152) 
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:698) 
at com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:152) 
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:332) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:592) 
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:320) 
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:493) 
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325) 
+0

यदि आपको एक्सएसडी में अज्ञात जटिल प्रकार के घोंसले मिल गए हैं तो वे आपकी समस्या का कारण बन सकते हैं। jaxb 1.x किसी त्रुटि को फेंकने के बिना उस तरह की चीज़ को अनुमति देगा लेकिन यह जैक्सबी 2.x में एक मुद्दा प्रतीत होता है। यदि यह मुद्दा है, तो मुझे XSD को संशोधित करने के बाहर इसके साथ निपटने के किसी भी तरीके से नहीं पता है। – Durandal

+0

@MRalwasser - क्या कोई ऐसी जानकारी है जिसे आप पोस्ट कर सकते हैं जिसका उपयोग मैं आपके द्वारा देखे जा रहे त्रुटि को पुन: उत्पन्न करने के लिए कर सकता हूं ताकि मैं इस मुद्दे को डीबग करने में सहायता कर सकूं? –

उत्तर

2

यह एक List<Bar> प्रकार सोप पैरामीटर के लिए Foo वस्तुओं को जोड़ने की वजह से हो सकता है।

मेरे पास कुछ हफ्ते पहले यह सटीक अपवाद था। मैं एक संकलन त्रुटि की उम्मीद करता, इसलिए हुड के नीचे कुछ बदसूरत प्रकार का जबरदस्ती होना चाहिए ताकि इसे होने की अनुमति मिल सके। मैंने Foo के साथ Bar (जिसे वे वैसे भी होना चाहिए) के साथ समस्या का समाधान नहीं किया - किसी और की जांच नहीं की।

+1

रोब, मेरे पास एक फू क्लास नहीं है ..... मैं अपनी बार कक्षा को किस प्रकार बदल सकता हूं? SAXException2: "com.foo.Bar" का उदाहरण "java.lang.Object" को प्रतिस्थापित कर रहा है, लेकिन "com.foo.Bar" किसी अज्ञात प्रकार [email protected] से जुड़ा हुआ है –