【问题标题】:Configuring Spring Batch with Maven使用 Maven 配置 Spring Batch
【发布时间】:2012-08-27 04:01:05
【问题描述】:

使用 Maven 配置 Spring Batch。使用的JDK:1.6,Spring Batch 2.1.8.RELEASE;春季版本 3.0.5.RELEASE。获取运行时异常如下:

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.
support.ClassPathXmlApplicationContext@b29c9d: 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)

关于如何解决此问题的任何建议。还注意到每次都会下载 Spring 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

【问题讨论】:

    标签: spring spring-batch


    【解决方案1】:

    你很可能是:

    • 只需使用版本低于 2.0 的 spring-batch-core jar 版本(Maven 依赖项)。 Schema 命名适用于 2.0 及更高版本。如果是这种情况,请更新您的依赖项

    • 您在项目的 pom.xml 中有正确(高于 2.0)版本的 spring-batch-core,但您也有一个传递依赖项,它会将较早版本的 spring-batch-core 引入您的项目。如果是这种情况,请尝试以下操作:

      mvn 依赖:tree -Dverbose -Dincludes=org.springframework.batch

    这将列出所有引入它们自己版本的 spring-batch 依赖项的依赖项。在 spring-batch-core 上为这些依赖项添加一个排除条目,如下所示:

    <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>
    

    【讨论】:

    • 感谢您的回复。依赖树显示: [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.发布:编译。由于省略了重复,我可以假设这不是问题的原因
    【解决方案2】:

    我的问题已通过添加 maven-shade-plugin 得到解决,详见: https://stackoverflow.com/a/8574629/1419116

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 1970-01-01
      • 2016-06-16
      • 2011-02-13
      • 2013-07-26
      • 2021-09-08
      • 2014-02-25
      • 2014-01-21
      • 2012-08-06
      相关资源
      最近更新 更多