2012-06-07 11 views
5

एक स्टैंडअलोन जावा अनुप्रयोग के लिए में अमान्य वर्ण, हम बहुत ही दुर्लभ त्रुटियों जहां मान्य XML सामग्री युक्त तार की तरह अपवाद फेंक JAXB उत्पन्न कर रहे हैं देख रहे हैं आवेदन, कि जावा के एक पुराने संस्करण के लिए लिखा गया था, और हम एक मौजूदा निर्भरता है: हालांकि कारण भिन्न हो सकते हैंSAXParseException एक्सएमएल-20,221 पाठ

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>xdb-xmlparser</artifactId> 
    <version>10.2.0.3.0</version> 
</dependency> 

त्रुटि कोड लगातार एक्सएमएल-20,221 है, उदाहरण के लिए:

XML-20221: (Fatal Error) Invalid char in text. 

XML-20100: (Fatal Error) Expected '?>'.] 

XML-20121: (Fatal Error) End tag does not match start tag 'TotalDepositReqd'. 

स्टैक ट्रेस के बाकी भी बदलता रहता है, लेकिन आम तौर पर दिखाई देता है:

at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:415) 
at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:284) 
at oracle.xml.parser.v2.NonValidatingParser.parseEndTag(NonValidatingParser.java:1359) 
at oracle.xml.parser.v2.NonValidatingParser.parseElement(NonValidatingParser.java:1304) 
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:326) 
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:293) 
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:209) 
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211) 

हमारे जावा संस्करण है:

java version "1.6.0_16" 
Java(TM) SE Runtime Environment (build 1.6.0_16-b01) 
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode) 

हमारे वर्तमान कमांड लाइन है:

java 
-server 
-Xmx2048m 
-Xms2048m 
-XX:MaxPermSize=128m 
-XX:+UseConcMarkSweepGC 
-Dsun.rmi.dgc.server.gcInterval=0x2932E00 
-Dsun.rmi.dgc.client.gcInterval=3600000 
-verbosegc 
-Xloggc:/path/to/file 
-gc.log 
-XX:+PrintGCDetails 
-XX:+PrintGCDateStamps 
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl 
-Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl 
-Djava.endorsed.dirs=/path/to/endorsed 
-Duser.country=GB 
-Duser.language=en 
-Dhttp.keepAlive=false foo.ListenerServer 

आमतौर पर हम इन्हें देखते हैं छोटे विस्फोट जो कुछ सेकंड तक फैले हैं, जो मुझे बताते हैं कि कुछ आंतरिक बफर दूषित हो गए हैं? ये अपवाद अधिक सामान्य हो जाते हैं जितना JVM के लिए है। JVM का उछाल कई दिनों तक इस मुद्दे को हल करता है।

  • क्या किसी और ने कुछ ऐसा देखा है?
  • यदि हां, तो क्या आपने इसे हल करने का प्रबंधन किया था?
  • शायद हमें एक अलग जेएक्सबी/जेएक्सपी कार्यान्वयन में जाना चाहिए?
+3

मुझे अभी भी XML सामग्री में रुचि होगी। यह भी हो सकता है कि थोड़ी देर के लिए आप विभिन्न सिस्टम प्रॉपर्टी file.encoding पर चल रहे हैं, जो डिफ़ॉल्ट एन्कोडिंग है। शेष कोड में "file.encoding" के लिए खोजें या एन्कोडिंग स्पष्ट करें। –

+0

मैं पहली बार एक्सएमएल को सुझाएगा जैसे कि जोप ने सुझाव दिया था। शायद ये https://blogs.oracle.com/alanb/entry/heap_dumps_are_back_with मदद कर सकते हैं? – Bringer128

उत्तर

4

एक डेवलपर ने Unmarshaller उदाहरण कैश किया और इसे विभिन्न धागे के बीच साझा किया जब मैंने इसी तरह की समस्याएं (अनमर्शलिंग के दौरान स्पोराडिक अपवाद) देखा है। प्रलेखन के अनुसार Unmarshaller धागा सुरक्षित नहीं है।