2011-01-18 7 views
25

मैं जेएसएफ 2.0, नेटबीन 6.9.1, ग्लासफ़िश सर्वर 3.1, mojarra 2.0.3, और जैस्पररपोर्ट्स 3.7.6 का उपयोग कर एक वेब एप्लिकेशन विकसित कर रहा हूं। मेरी प्रोजेक्ट लाइब्रेरी में शामिल जार फ़ाइल "xerces-2.8.0.jar" है। यह फ़ाइल JasperReports जार फ़ाइल लाइब्रेरी के हिस्से के रूप में आयात की गई थी। जब भी मैं तैनात करने के लिए प्रयास करते हैं, चलाने के लिए, या NetBeans के माध्यम से अपने प्रोजेक्ट डिबग, मैं इस त्रुटि मिलती है:Xerces त्रुटि: org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl

java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory. 

अपने प्रोजेक्ट में कोई बदलाव अपने निर्माण में विफल रहता है के बाद, और मैं ऊपर त्रुटि मिलती है, जब मैं तैनात करने के लिए प्रयास करते हैं, चलाओ, या इसे डीबग करें। मुझे सर्वर को पुनरारंभ करना होगा और दूसरी बार चला/डीबग करना होगा। मैंने इंटरनेट की खोज की है और इस समस्या का समाधान नहीं मिल रहा है। मैंने जार फ़ाइल को प्रश्न में देखा है, और डीटीडीडीवीएफक्ट्रीआईएमएल वास्तव में डीटीडीडीवी फैक्ट्री से विस्तारित है - मुझे नहीं पता कि मुझे यह त्रुटि क्यों मिल रही है। जबकि मैं अंत में अपना प्रोजेक्ट चला सकता हूं, अगर मुझे यह त्रुटि नहीं मिल रही तो यह बहुत अच्छा होगा।

क्या कोई मुझे बता सकता है कि मैं इसे कैसे ठीक कर सकता हूं? क्या मुझे अपनी प्रोजेक्ट लाइब्रेरी से इस फाइल को हटाने की ज़रूरत है? क्या मुझे इस फ़ाइल को एक नए संस्करण/पुराने संस्करण के साथ अपडेट करने की आवश्यकता है?

+0

हाय के लिए $AS_HOME/glassfish/lib/endorsed को $AS_HOME/lib/endorsed को selenium/libs/ से कॉपी एक्सएमएल जार (xerces-*, xalan-*, xml-apis*, serialize*) द्वारा उसके चारों ओर हो गया है, आप ठीक पाया है? – Osw

+1

मैंने नहीं किया है। मैंने सोचा कि मैंने यह पता लगाया था। मेरे पास परियोजना में एकाधिक ज़ेरेक्स जार फाइलें थीं। मैंने अनावश्यक को हटाकर सोचा कि यह चीजों को ठीक करेगा। मैं गलत था। यह नियमित रूप से मुझे यह त्रुटि देना जारी रखता है। – Sean

उत्तर

22

यदि आप अपना खुद का xerces.jar प्रदान करते हैं, तो आपको एंडॉर्ड्स स्टैंडर्ड ओवरराइड तंत्र (java -Djava.endorsed.dirs=/path/to/xerces.jar) के माध्यम से ऐसा करना होगा, आपको इसे केवल क्लासपाथ पर जोड़ने की अनुमति नहीं है (और जल्द ही या बाद में परेशानी में भाग लेगा कर)। मुझे समझाने दो।

JAXP Java API for XML Processing है। जेएक्सपी ऑब्जेक्ट्स (जैसे पार्सर्स, एक्सएसएलटी ट्रांसफॉमर, डीओएम दस्तावेज़) का निर्माण factory/factory-method pattern के माध्यम से किया जाता है ताकि आप एक नया जेएक्सपी कार्यान्वयन प्लगइन कर सकें (इसे आपके जेआरई में प्रदान किए गए एक से अधिक होना चाहिए)। जेरिस एक जेएक्सपी कार्यान्वयन (भाग का) प्रदान करता है और इसमें अनुमोदित मानकों (अनुमोदित मानक जावा सामुदायिक प्रक्रिया के अलावा मानकों की प्रक्रिया के माध्यम से परिभाषित जावा एपीआई है, Endorsed Standards Override Mechanism देखें)। यदि आप ESOM का उपयोग नहीं करते हैं तो आप सभी प्रकार की परेशानियों में भाग लेंगे।

0

मुझे ग्लासफ़िश के साथ सेलेनियम का उपयोग करते समय यह त्रुटि मिली। मैं (Glassfish 2 के लिए) या Glassfish 4.

+0

मुझे एक ही समस्या है। मैंने अपने वेबलॉगिक ऐप में कुछ अतिरिक्त स्प्रिंग स्टफ (संदेश संचालित पीओजेओ) जोड़े, और अब मुझे यह त्रुटि मिल रही है। डब्ल्यूएल 10.3.4, वसंत 3.0.5। (हाँ, मुझे पता है कि वसंत कम से कम 3.2.10 तक होना चाहिए। मैं वसंत को अपग्रेड करने से पहले परिवर्तन प्राप्त करने की उम्मीद कर रहा था।) –

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