這個問題是在用到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