2011-08-17 14 views
7

this सवाल और this प्रश्न के अनुसार, मैं निम्न त्रुटि हो रही है:Maven और स्प्रिंग = आवेदन संदर्भ बनाने में असमर्थ: स्प्रिंग NamespaceHandler पता लगाने में असमर्थ

Unable to create application context: org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context] 
Offending resource: class path resource [floodstream-mastercontrol.conf.xml] 

    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) 
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:284) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1332) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:136) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126) 
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:465) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:395) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) 
    at com.floodstream.wowza.mastercontrol.ServerListener.onServerCreate(ServerListener.java:30) 
    at com.wowza.wms.server.Server.notifyServerCreate(Unknown Source) 
    at com.wowza.wms.server.Server.start(Unknown Source) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at com.wowza.wms.bootstrap.Bootstrap.startServer(Unknown Source) 
    at com.wowza.wms.bootstrap.Bootstrap.main(Unknown Source) 

जाहिर है, इस में कुछ बग की वजह से है Maven, इसलिए यहाँ मेरी प्रासंगिक पोम है:

<?xml version="1.0"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <context:load-time-weaver/> 
    <context:spring-configured/> 

    <!-- beans omitted for brevity --> 
</beans> 
0:

<project> 
    <!-- dependencies omitted for brevity --> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-dependency-plugin</artifactId> 
       <version>2.3</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>copy-dependencies</goal> 
         </goals> 
         <configuration> 
          <includeScope>runtime</includeScope> 
          <outputDirectory>${project.build.directory}/dependencies</outputDirectory> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2.1</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>single</goal> 
         </goals> 
         <phase>package</phase> 
         <configuration> 
          <descriptorRefs> 
           <descriptorRef>jar-with-dependencies</descriptorRef> 
          </descriptorRefs> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

यहाँ अपने आवेदन संदर्भ है

तो, लक्ष्य चीजों को एक जार में जोड़ना है, लेकिन मुझे लगता है कि यह समस्या हो सकती है। क्या कोई समझ सकता है कि समस्या क्या है और मैं इसे कैसे हल कर सकता हूं? अन्य संदर्भित प्रश्नों में एक अलग सेटअप और लक्ष्य था, इसलिए मैं उनके नेतृत्व का बिल्कुल पालन नहीं कर सकता।

उत्तर

7

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

+1

धन्यवाद, जो समस्या बताता है! यह एक बमर है, लेकिन यह समझाता है। अगर जार के अंदर जार को पैक करने का कोई तरीका था ... ओह, मुझे लगता है कि मैंने स्पेस-टाइम निरंतरता तोड़ दी है। –

+1

@ टीके: [वन-जेएआर] (http://one-jar.sourceforge.net/) –

+0

आप, मेरे दोस्त ने एक अलग प्रश्न का उत्तर भी जीता है। \ m/ –

6

मैं एक ही मुद्दे में भाग गया। लेकिन शुक्र है कि मेरी टीम के साथी ने मेटा-इंफ फाइलों को संरक्षित करने के लिए उबेर जार बनाने का तरीका बताया था। यहां पोम टुकड़ा है जिसने मेरी मदद की।

<configuration> 
    <shadedArtifactAttached>true</shadedArtifactAttached> 
    <shadedClassifierName>jar-with-dependencies</shadedClassifierName> 
    <finalName>SpringWS-uber</finalName> 
    <transformers> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
      <resource>META-INF/spring.handlers</resource> 
     </transformer> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
      <resource>META-INF/spring.schemas</resource> 
     </transformer> 
     <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
      <resource>META-INF/spring.tooling</resource> 
     </transformer> 
    </transformers> 
</configuration> 
+0

पूरी तरह से काम करता है। आप मेरे लिए हल किए गए सिरदर्द की मात्रा पर विश्वास नहीं करेंगे। धन्यवाद!!! –

+0

यह <कॉन्फ़िगरेशन> का क्या है? –

+0

पीटर पेराक के समान प्रश्न, क्या आपने ट्रांसफॉर्मर को मेवेन-असेंबली-प्लगइन के अंदर सेट किया था या आपने मैवेन-शेड-प्लगइन का उपयोग किया था? – ZheFrench

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

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