0

アノテーション Spring を使用してジョブをスケジュールしようとしています。構成ファイルは次のとおりです。

  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:task="http://www.springframework.org/schema/task"
   xmlns:util="http://www.springframework.org/schema/util"
   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.xsd
   http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-   
   util.xsd
   http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-
   task-3.0.xsd">

   <task:annotation-driven />
   <util:properties id="batchProp" location="application.properties" />
   <context:property-placeholder properties-ref="batchProp" />
   <bean id="indexer" class="package-name"></bean>
   </beans>

これが私がそれを呼び出す方法です:

  public static void main(String[] args){
    ApplicationContext appCont = new ClassPathXmlApplicationContext("Spring-Config.xml");
    prop_file = appCont.getBean("batchProp", Properties.class);
  }

私のpomビルドセグメントはファイルです:

  <build>
     <plugins>
    <plugin>
       <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
           <archive>
                          <manifest>
            <addClasspath>true</addClasspath>
            <mainClass>my_main_class</mainClass> 
              </manifest>
           </archive>
               <descriptorRefs>
                          <descriptorRef>jar-with-dependencies</descriptorRef>
                   </descriptorRefs>
            </configuration>
        <executions>
            <execution>
               <id>make-my-jar-with-dependencies</id>
               <phase>package</phase> 
               <goals>
                <goal>single</goal>
               </goals>
                </execution>
        </executions>
    </plugin>
</plugins>
</build>

これは、Spring Tool Suite で実行するとまったく問題なく動作しますが、サーバーで jar ファイルを実行するとエラーがスローされます。エラーは次のとおりです。

  Exception in thread "main"    
  org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration   problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/task]
  Offending resource: class path resource [Spring-Config.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:316)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1416)
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
    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:174)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:243)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
    at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
    at com.mypackage.name.Indexer.main(Indexer.java:204)

誰かが何が起こっているのか教えてもらえますか?

ありがとうございました!

4

1 に答える 1

0

「タスク」名前空間を持つSpring jarがないように見えます(おそらく「タスク」だけでなく、すべての名前空間:「タスク:アノテーション駆動」を「util:プロパティ」の後に配置しようとすると、他のメッセージが表示されます)サーバーでの定義クラスパス。サーバーの「libs」ディレクトリに古いSpring jarがないことを確認してください。必要なSpring jarをサーバーの「libs」ディレクトリに配置してみてください。

于 2013-08-11T14:21:49.210 に答える