Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace 解决方法
Posted sweatear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace 解决方法相关的知识,希望对你有一定的参考价值。
这个问题是在用到spring时,本地IDE里面跑的很正常,但是打包后在集群上运行时报错。
多方查找资料后确定了问题的根源,由于在依赖中调用了spring的许多包,会存在文件覆盖的情况。
具体是
这三个文件。查看后,只剩下tx的配置了。
解决方法
第一种方法是使用maven的打包插件,在里面保留各个spring包的配置信息:
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version> 1.7.1</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.handlers</resource>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/spring.schemas</resource>
- </transformer>
- <transformer
- implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
- <mainClass>com.chenzhou.test.Main</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
但是这种方法限制只能用这种maven插件打包,实际上,只要这三个文件能够包含完整的配置信息就行了
第二种方法其实很简单,找到这三个文件,用我提供的这三个完整的文件覆盖即可。
通常,这三个文件都在jar包下面的META-INF路径下
以上是关于Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace 解决方法的主要内容,如果未能解决你的问题,请参考以下文章
dpkg dependency problems prevent configuration
Launching New_configuration has encountered a problem
Configuration problem: Failed to import bean definitions from relative location
开源项目运行时报错A problem was found with the configuration of task ‘:app:checkDebugManifest‘
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace 解决方法