Невозможно найти Spring NamespaceHandler для пространства имен схемы XML [http://www.springframework.org/schema/batch ]

Ситуация

Я использую Spring Batch для создания накопительного снимка для нашего хранилища данных, и у меня возникла проблема с конфигурацией, которую я не могу понять.

Я создал простой пакетный проект Spring с STS (SpringSource Tool Suite 2.8.1), используя Spring Template Project . Это были два моих файла конфигурации xml:

launch-context.xml









    





и module-context.xml

 


Example job to get you started. It provides a skeleton for a typical batch application.


               
        
            
        
    
 


Проблема

Я запускаю следующую команду для компиляции и упаковки проекта: mvn clean compile install

, затем я делаю следующее:

  1. cd to target folder

  2. Запускаем задание через CommandLineJobRunner: java -jar batchprimer-1.0.jar META-INF / spring / module-context.xml job1

, и я получаю следующую ошибку:

C:\stsworkspace\BatchPrimer\target>java -jar batchprimer-1.0.jar META-INF/spring
/module-context.xml job1
2011-12-15 12:03:53,421 INFO [org.springframework.context.support.ClassPathXmlAp
plicationContext] - 
2011-12-15 12:03:53,468 INFO [org.springframework.beans.factory.xml.XmlBeanDefin
itionReader] - 
2011-12-15 12:03:53,796 ERROR [org.springframework.batch.core.launch.support.Com
mandLineJobRunner] - 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Config
uration problem: Unable to locate Spring NamespaceHandler for XML schema namespa
ce [http://www.springframework.org/schema/batch]
Offending resource: class path resource [META-INF/spring/module-context.xml]

        at org.springframework.beans.factory.parsing.FailFastProblemReporter.err
or(FailFastProblemReporter.java:68)
        at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderC
ontext.java:85)
        at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderC
ontext.java:80)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.er
ror(BeanDefinitionParserDelegate.java:284)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
rseCustomElement(BeanDefinitionParserDelegate.java:1335)
        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.pa
rseCustomElement(BeanDefinitionParserDelegate.java:1328)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe
ader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)
        at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentRe
ader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registe
rBeanDefinitions(XmlBeanDefinitionReader.java:493)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadB
eanDefinitions(XmlBeanDefinitionReader.java:390)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:334)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:302)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
        at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:126)
        at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:92)
        at org.springframework.context.support.AbstractRefreshableApplicationCon
text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
        at org.springframework.context.support.AbstractApplicationContext.obtain
FreshBeanFactory(AbstractApplicationContext.java:467)
        at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:397)
        at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
        at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83)
        at org.springframework.batch.core.launch.support.CommandLineJobRunner.st
art(CommandLineJobRunner.java:282)
        at org.springframework.batch.core.launch.support.CommandLineJobRunner.ma
in(CommandLineJobRunner.java:574)

Additional Stuff

В целевой папке, заполненной командой mvn install, у меня есть следующее:

  1. Папка classes
  2. папка lib со всеми моими зависимостями maven
  3. папка maven-archiver
  4. тестовые классы папка
  5. a batchprimer-1.0.jar

Внутри jar-файла, в META-INF / MANIFEST.MF .У меня следующее:

Manifest-Version: 1.0

Archiver-Version: Plexus Archiver

Created-By: Apache Maven

Built-By: dpardo

Build-Jdk: 1.6.0_20

Main-Class: org.springframework.batch.core.launch.support.CommandLineJ
 obRunner

Class-Path: lib/spring-jdbc-3.0.6.RELEASE.jar lib/spring-beans-3.0.6.R
 ELEASE.jar lib/spring-core-3.0.6.RELEASE.jar lib/spring-asm-3.0.6.REL
 EASE.jar lib/commons-logging-1.1.1.jar lib/spring-tx-3.0.6.RELEASE.ja
 r lib/aopalliance-1.0.jar lib/spring-aop-3.0.6.RELEASE.jar lib/spring
 -context-3.0.6.RELEASE.jar lib/spring-expression-3.0.6.RELEASE.jar li
 b/cglib-nodep-2.2.jar lib/spring-batch-core-2.1.7.RELEASE.jar lib/spr
 ing-batch-infrastructure-2.1.7.RELEASE.jar lib/xstream-1.3.jar lib/xp
 p3_min-1.1.4c.jar lib/jettison-1.1.jar lib/commons-io-1.4.jar lib/com
 mons-dbcp-1.2.2.jar lib/commons-pool-1.3.jar lib/hsqldb-1.8.0.7.jar l
 ib/aspectjrt-1.6.8.jar lib/aspectjweaver-1.6.8.jar lib/log4j-1.2.14.j
 ar lib/slf4j-log4j12-1.5.8.jar lib/slf4j-api-1.5.8.jar lib/mysql-conn
 ector-java-5.1.3.jar

Поэтому я не думаю, что это проблема пути к классам, потому что в консоли кажется, что он находит jar-файлы.

Что я пробовал

На основании ошибки я вставил следующий URL

http://www.springframework.org/schema/batch/

, и кажется, что адрес пространств имен для Spring Batch чтобы быть правильным. Я тоже не нашел там ничего полезного. Я где-то читал, что «что-то» могло переопределять пространства имен файлов, но на самом деле не понимал, почему, что и / или как это решить.

Это просто из коробки и уже не работает без каких-либо модификаций, дополнений или чего-либо еще. Любые идеи?

Спасибо

РЕШЕНИЕ

В дополнение к отмеченному ниже как правильному решению. Мне также пришлось изменить launch-context.xml со сканирования компонентов на обычную пружинную проводку, как показано ниже:




    
    
    
    



    



    
    
    
    

12
задан Viriato 22 December 2011 в 19:29
поделиться