Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace 解決方法

      這個問題是在用到spring時,本地IDE裏面跑的很正常,可是打包後在集羣上運行時報錯。spring

多方查找資料後肯定了問題的根源,因爲在依賴中調用了spring的許多包,會存在文件覆蓋的狀況。apache

具體是maven

這三個文件。查看後,只剩下tx的配置了。spa

解決方法插件

第一種方法是使用maven的打包插件,在裏面保留各個spring包的配置信息:orm

  1. <plugin>  
  2.     <groupId>org.apache.maven.plugins</groupId>  
  3.     <artifactId>maven-shade-plugin</artifactId>  
  4.     <version> 1.7.1</version>  
  5.     <executions>  
  6.         <execution>  
  7.             <phase>package</phase>  
  8.             <goals>  
  9.                 <goal>shade</goal>  
  10.             </goals>  
  11.             <configuration>  
  12.                 <transformers>  
  13.                     <transformer  
  14.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  15.                         <resource>META-INF/spring.handlers</resource>  
  16.                     </transformer>  
  17.                     <transformer  
  18.                         implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
  19.                         <resource>META-INF/spring.schemas</resource>  
  20.                     </transformer>  
  21.                     <transformer  
  22.                         implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
  23.                         <mainClass>com.chenzhou.test.Main</mainClass>  
  24.                     </transformer>  
  25.                 </transformers>  
  26.             </configuration>  
  27.         </execution>  
  28.     </executions>  
  29. </plugin>

可是這種方法限制只能用這種maven插件打包,實際上,只要這三個文件可以包含完整的配置信息就好了xml

第二種方法其實很簡單,找到這三個文件,用我提供的這三個完整的文件覆蓋便可。blog

一般,這三個文件都在jar包下面的META-INF路徑下ip

下載連接爲http://files.cnblogs.com/files/starwater/spring.zipget

相關文章
相關標籤/搜索