2011-02-11 10 views
13

मैं एक वसंत Maven (जार के रूप में पैक) के उपयोग के साथ बनाया परियोजना (निर्भरता एक अलग निर्देशिका में प्रतिलिपि और classpath में जुड़ जाते हैं)Maven वसंत - की घोषणा नहीं खोजा जा सका तत्व 'सेम'

मैं चाहता है

की वजह से: org.xml.sax.SAXParseException: CVC-elt.1: तत्व की घोषणा नहीं खोजा जा सका जार

समस्या

जावा के रूप में इसे चलाने के लिए है कि मैं जब मैं इसे चलाने है 'फलियां'।

यह इसलिए होता है क्योंकि spring.schemas और spring.handlers कुछ जार में स्थित हैं अर्थात्: वसंत-सेम, आदि

वहाँ इसे हल करने के लिए कोई रास्ता नहीं है, मान है कि मैं छाया का उपयोग नहीं करना चाहते हैं सभी निर्भरताओं को अनपैक करने के लिए प्लगइन और spring.schemas और spring.handlers की सामग्री को जोड़ना?

मैं अपने प्रोजेक्ट में xsd फ़ाइलों को सहेजने और मेरे स्थान पर इंगित करने के लिए स्कीमालोकेशन बदलने से बचाना चाहूंगा।

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> 

    <camel:camelContext> 
     <camel:routeBuilder ref="fakeRouteBuilder"/> 
    </camel:camelContext> 

    <bean id="fakeRouteBuilder" class="<className>" /> 


</beans> 
+0

क्या आप कॉन्फ़िगरेशन वसंत कॉन्फ़िगरेशन फ़ाइलों में से एक को पेस्ट कर सकते हैं? मुझे लगता है कि समस्या – Augusto

+0

' \t <ऊंट: camelContext> \t \t <ऊंट: routeBuilder रेफरी =" fakeRouteBuilder "/> +०१२३२९६५५६० \t <सेम आईडी = "fakeRouteBuilder" class = "कॉम ..." /> ' – JJT

+0

अपने' xsi की जाँच करें: schemaLocation' विशेषता। ऐसा लगता है कि यह गलत है, लेकिन यह टिप्पणियों में यूआरएल के लिंक के कारण भी हो सकता है। असल में यह बेहतर होगा, अगर आपने अपनी पिछली टिप्पणी को कोड ब्लॉक के रूप में जोड़कर अपना प्रश्न संपादित किया है (= कोड का चयन करें और इसे कोड ब्लॉक के रूप में प्रदर्शित करने के लिए '{}' बटन पर क्लिक करें) – jasso

उत्तर

0

एक http:// अपने XSD घोषणा में बहुत ज्यादा नहीं है। इस प्रयास करें:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:camel="http://camel.apache.org/schema/spring" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans  
     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
     http://camel.apache.org/schema/spring 
     http://camel.apache.org/schema/spring/camel-spring.xsd"> 

+0

मेरी गलती, मैंने इसे कॉपी किया दुर्घटना - मेरे संदर्भ में "http: // http: //" नहीं था। मैंने देखा, त्रुटि तब होती है जब कोई इंटरनेट कनेक्शन नहीं होता है। जब मैं युद्ध समस्या में पैकेजिंग बदलता हूं गायब हो जाता है ... – JJT

24

(तुम्हारा http://http://www.springframework.org/schema/beans/spring-beans-2.5.xsd था) मैं आपको एक इंटरनेट कनेक्शन (एक प्रॉक्सी के पीछे नहीं है, तो 2 स्थितियों में, जहां आप इस समस्या को

  • हो सकता है पता करने के लिए उदाहरण)। उस स्थिति में, एक्सएसडी डाउनलोड करें, इसे एक्सएमएल के बगल में कॉपी करें, और स्कीमा स्थान को xsi:schemaLocation=" http://www.springframework.org/schema/beans spring-beans-2.5.xsd ..."
  • पर बदलें यदि आपके पास इंटरनेट कनेक्शन है/अभी भी समस्या है, तो ऐसा इसलिए है क्योंकि आप एक्सएसडी के लिए वसंत के विभिन्न संस्करणों का उपयोग करते हैं और जार।
+1

बस स्थानीय, इंटरनेट-कम नेटवर्क पर यह समस्या परीक्षण कर रही थी। पहला बिंदु स्पॉट पर था। – jdmichal

+0

बस एक ही समस्या का सामना करना पड़ा, पहले समाधान के साथ तय! धन्यवाद – Dough

8

मुझे लगता है कि एक्सएसडी वसंत जार का हिस्सा होगा, इसलिए समस्या नहीं होनी चाहिए।

+0

यह वास्तव में सही उत्तर है, वसंत में एक्सएसडी का पैकेज है और उन्हें डाउनलोड नहीं किया जाएगा। –

+0

यूपी प्रभावी रूप से सही उत्तर – antoine

0

मुझे यह त्रुटि मिली जब मेरा एक्सएसडी यूआरएल अलग-अलग स्थान पर इशारा करता है जो कि जार फ़ाइल में परिभाषित एक्सएसडी स्थान से अलग है। उदाहरण के लिए, के बजाय spring-beans-3.0.xsd vise-versa।

2

एक ही समस्या है क्योंकि मैं प्रॉक्सी के पीछे था। मैं बिलाव 6. के तहत एक वसंत MVC अनुप्रयोग चल रहा था बस मेरे catalina.bat फ़ाइल के biginning में निम्नलिखित लाइनों जोड़ा और कहा कि मेरी समस्या हल:

set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=XXXX -Dhttp.proxyPort=YYYYY -Dhttp.proxyUser=ZZZZ -Dhttp.proxyPassword=XXXXXX 
+0

+1 है "एक ही समस्या है क्योंकि मैं प्रॉक्सी के पीछे था" – wxl24life

0

इसके अलावा, आप here से सलाह का उपयोग कर सकते हल करने के लिए समस्या

4

वसंत जार में मेटा-आईएनएफ/वसंत.handlers और मेटा-आईएनएफ/spring.schemas फ़ाइलें शामिल हैं।फ़ाइलों को अधिलेखित करने से बचने के लिए जब एक जार के लिए उनकी निर्भरता के योग आप Maven शेड प्लगइन का उपयोग कर सकते हैं:

http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#AppendingTransformer

0

मैं बिल्कुल वैसा ही समस्या थी और मुझे लगता है कि यह 2 प्रमुख कारण के कारण होता है:

  • वसंत-सुरक्षा निर्भरताओं और एक्सएसडी फ़ाइल संदर्भों के लिए आपके पास अलग-अलग संस्करण हैं।
  • यदि आप वसंत आम ढांचे और वसंत-सुरक्षा के विभिन्न संस्करणों का उपयोग करते हैं तो यह भी खुश हो सकता है।
1

मैं अपने दूरदराज के संसाधनों कैश, खिड़की> प्राथमिकताएं> सामान्य> नेटवर्क कनेक्शन> कैश Maven-विधानसभा-प्लगइन द्वारा उत्पन्न

+0

इसने एक ऐसी समस्या हल की जहां मुझे एक परियोजना नाम बदलने के बाद त्रुटियां मिल रही थीं। कैश में सभी फाइलों को हटाने और परियोजना को साफ/पुनर्निर्माण करने से इस मुद्दे को हल किया गया। – Felby

0

META-INF/INDEX.LIST फ़ाइल से XSD फ़ाइल को साफ़ करके एक ऐसी ही समस्या को हल करने में सक्षम था कर सकते हैं एक अपराधी भी हो।

कारण: एक जावा बग: "ClassLoader.getResources() केवल 1 उदाहरण देता है जब जार अनुक्रमण का उपयोग कर"

समाधान:

<indexed>false</indexed> 

संसाधन:: Spring JIRA SPR-5705 विधानसभा डिस्क्रिप्टर में अनुक्रमण को निष्क्रिय JDK-6957241 ClassLoader.getResources() returns only 1 instance when using jar indexing