2012-09-01 72 views
0

使用Maven配置Spring批處理。 JDK使用:1.6,Spring Batch版本2.1.8.RELEASE; Spring版本3.0.5.RELEASE。運行時異常如下:使用Maven配置Spring批處理

D:\SpringProject\SpringTry\target>java -jar SpringTry-1.0-SNAPSHOT.jar jobs/helloWorld.xml helloWorldJob 
2012-09-02 00:23:51,650 INFO [org.springframework.context.support.ClassPathXmlApplicationContext] - <Refreshing org.springframework.context. 
[email protected]: startup date [Sun Sep 02 00:23:51 IST 2012]; root of context hierarchy> 
2012-09-02 00:23:51,769 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from class path 
resource [jobs/helloWorld.xml]> 
2012-09-02 00:23:53,854 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from class path 
resource [launch-context.xml]> 
2012-09-02 00:23:53,929 ERROR [org.springframework.batch.core.launch.support.CommandLineJobRunner] - <Job Terminated in error: Configuration 
problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/batch] 
Offending resource: class path resource [jobs/helloWorld.xml] 
> 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler fo 
r XML schema namespace [http://www.springframework.org/schema/batch] 
Offending resource: class path resource [jobs/helloWorld.xml] 

     at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 
     at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) 

有關如何解決此問題的任何建議。還注意到,春季2.5.6是越來越下載每次,隨着版本3.0.5提到

我的清單看起來像:

Manifest-Version: 1.0 
Archiver-Version: Plexus Archiver 
Created-By: Apache Maven 
Build-Jdk: 1.6.0 
Main-Class: org.springframework.batch.core.launch.support.CommandLineJobRunner 
Class-Path: lib/spring-batch-core-2.1.9.RELEASE.jar lib/xstream-1.3.jar lib/xpp3_min-1.1.4c.jar lib/jettison-1.1.jar lib/spring-aop-2.5.6.jar lib/aopalliance-1.0.jar lib/spring-tx-2.5.6.jar lib/spring-batch-infrastructure-2.1.9.RELEASE.jar lib/spring-beans-3.0.5.RELEASE.jar lib/spring-context-3.0.5.RELEASE.jar lib/spring-expression-3.0.5.RELEASE.jar lib/spring-asm-3.0.5.RELEASE.jar lib/spring-core-3.0.5.RELEASE.jar lib/commons-logging-1.1.1.jar lib/spring-jdbc-3.0.5.RELEASE.jar lib/log4j-1.2.16.jar lib/maven-resources-plugin-2.4.3.jar lib/maven-plugin-api-2.0.6.jar lib/maven-project-2.0.6.jar lib/maven-profile-2.0.6.jar lib/maven-artifact-manager-2.0.6.jar lib/maven-plugin-registry-2.0.6.jar lib/maven-core-2.0.6.jar lib/wagon-file-1.0-beta-2.jar lib/maven-plugin-parameter-documenter-2.0.6.jar lib/wagon-http-lightweight-1.0-beta-2.jar lib/wagon-http-shared-1.0-beta-2.jar lib/jtidy-4aug2000r7-dev.jar lib/xml-apis-1.0.b2.jar lib/maven-reporting-api-2.0.6.jar lib/doxia-sink-api-1.0-alpha-7.jar lib/wagon-provider-api-1.0-beta-2.jar lib/maven-repository-metadata-2.0.6.jar lib/maven-error-diagnostics-2.0.6.jar lib/commons-cli-1.0.jar lib/wagon-ssh-external-1.0-beta-2.jar lib/wagon-ssh-common-1.0-beta-2.jar lib/maven-plugin-descriptor-2.0.6.jar lib/plexus-interactivity-api-1.0-alpha-4.jar lib/wagon-ssh-1.0-beta-2.jar lib/jsch-0.1.27.jar lib/classworlds-1.1.jar lib/maven-artifact-2.0.6.jar lib/maven-settings-2.0.6.jar lib/maven-model-2.0.6.jar lib/maven-monitor-2.0.6.jar lib/plexus-container-default-1.0-alpha-9-stable-1.jar lib/junit-3.8.1.jar lib/plexus-utils-2.0.5.jar lib/maven-filtering-1.0-beta-4.jar lib/plexus-build-api-0.0.4.jar lib/plexus-interpolation-1.13.jar 

回答

0

最可能的是,你要麼是:

  • 只需使用版本低於2.0的spring-batch-core jar(Maven dependency)版本。架構命名適用於2.0版及更高版本。如果是這種情況,更新你的依賴

  • 你在你的項目的pom.xml彈簧一批覈心的正確的(高於2.0)版本,但也有一個傳遞性依賴性,它將Spring-batch-core的早期版本引入到您的項目中。如果是這樣的話,請嘗試以下操作:

    MVN依賴性:樹-Dverbose -Dincludes = org.springframework.batch

這將列出所有在他們自己的版本帶來的依賴性的彈簧批次依賴關係。加上彈簧一批覈心對於那些依賴,像這樣的排除項:

<dependency> 
      <groupId>whatever.group</groupId> 
      <artifactId>whateverArtifact</artifactId> 
      <version>1.0</version> 
      <exclusions> 
      <exclusion> 
       <groupId>org.springframework.batch</groupId> 
       <artifactId>spring-batch-core</artifactId> 
      </exclusion> 
      </exclusions> 
     </dependency> 
+0

感謝您的答覆。依賴關係樹顯示:[INFO] --- maven-dependency-plugin:2.1:tree(default-cli)SpringTry --- [INFO] com.my.batch:SpringTry:jar:1.0-SNAPSHOT [INFO] + - org.springframework.batch:spring-batch-core:jar:2.1.8.RELEASE:compile [INFO] | \ - (org.springframework.batch:spring-batch-infrastructure:jar:2.1.8.RELEASE:compile - 省略重複)[INFO] \ - org.springframework.batch:spring-batch-infrastructure:jar:2.1。 8.RELEASE:編譯。由於重複被忽略,我可以認爲這不是問題的原因 –

相關問題