这个问题是在用到spring时,本地IDE里面跑的很正常,可是打包后在集群上运行时报错。spring
多方查找资料后肯定了问题的根源,因为在依赖中调用了spring的许多包,会存在文件覆盖的状况。apache
具体是maven

这三个文件。查看后,只剩下tx的配置了。spa
解决方法插件
第一种方法是使用maven的打包插件,在里面保留各个spring包的配置信息:orm
- <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插件打包,实际上,只要这三个文件可以包含完整的配置信息就好了xml
第二种方法其实很简单,找到这三个文件,用我提供的这三个完整的文件覆盖便可。blog
一般,这三个文件都在jar包下面的META-INF路径下ip
下载连接为http://files.cnblogs.com/files/starwater/spring.zipget