读书人

spring配置文件错误

发布时间: 2012-10-21 09:00:07 作者: rapoo

spring配置文件异常

100817 141034 INFO AbstractApplicationContext.java:411 Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@1f9dc36: display name [org.springframework.context.support.ClassPathXmlApplicationContext@1f9dc36]; startup date [Tue Aug 17 14:10:34 CST 2010]; root of context hierarchy100817 141034 INFO XmlBeanDefinitionReader.java:323 Loading XML bean definitions from class path resource [context-common-default.xml]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/tx]Offending resource: class path resource [context-common-default.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:281)        at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1294)

问题原因:打包之后,jar包中META-INF目录包含了多个spring的spring.schemas文件,该文件引导有先后顺序,导致无法处理http://www.springframework.org/schema/tx的schema。
解决办法:
将原先的spring分包依赖:
<dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><scope>test</scope></dependency>

改用以下单个包:
<dependency><groupId>org.springframework</groupId><artifactId>spring</artifactId></dependency>

ok pass.备忘! 1 楼 fjjiaboming 2012-02-27 显然这种方式不适合 spring 3.x 2 楼 onlydo 2012-03-22 如果没有把程序都打包到一个jar包里面是不会有这个问题。

读书人网 >软件架构设计

热点推荐