使用assembly打出的独立可执行jar包启动时报错spring错误的解决方法
2010-12-19 15:20
302 查看
有一个小工程,使用了spring,在使用maven的assembly打包成独立可执行的jar包后,在执行时报如下错误:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace
网上对这个问题也有提及,这是assembly的一个bug.参见:http://jira.codehaus.org/browse/MASSEMBLY-360 原因是spring的多个jar包中都含有spring.handlers和spring.schemas文件,而assembly只会把第一次遇到的文件打入jar包,后面遇到的都会skip掉。
解决方法就是放弃assembly,使用shade插件来打包.在shade的打包配制中指明spring.handlers和spring.schemas文件会以append方式加入进来,从而确保其他spring的jar中的这两个文件的信息不会被遗漏。下面是一份配置的例子:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace
网上对这个问题也有提及,这是assembly的一个bug.参见:http://jira.codehaus.org/browse/MASSEMBLY-360 原因是spring的多个jar包中都含有spring.handlers和spring.schemas文件,而assembly只会把第一次遇到的文件打入jar包,后面遇到的都会skip掉。
解决方法就是放弃assembly,使用shade插件来打包.在shade的打包配制中指明spring.handlers和spring.schemas文件会以append方式加入进来,从而确保其他spring的jar中的这两个文件的信息不会被遗漏。下面是一份配置的例子:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.4</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>activiti.server.deploy.Server</mainClass> </transformer> <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> </transformers> </configuration> </execution> </executions> </plugin>
相关文章推荐
- 使用assembly打出的独立可执行jar包启动时报错spring错误的解决方法
- maven assembly打出的独立可执行jar包找不到xml schema解决,使用shade插件
- linux 上使用commons-net.jar中 FTPClient类的listFiles、retrieveFile等方法停止不执行,出现假死状态解决办法
- Win7 USB接口无法使用/驱动错误/该设备无法启动。(代码10) 故障解决方法
- linux 上使用commons-net.jar中 FTPClient类的listFiles、retrieveFile等方法停止不执行,出现假死状态解决办法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 关于使用MyEclipse启动web项目时工具报 The specified JRE installation does not exist 错误提示解决方法
- MySQL使用命令行启动时报错“发生系统错误 5”的解决方法
- Android_关于使用android_r21 出现swt.jar的错误解决方法
- 使用高德地图API时出现错误为:10定位服务启动失败的解决方法
- 在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。 网上有文章指出,解决这个问题的方法是在设备管理器中启动“Microsoft托管网络虚拟适配
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- log4cplus使用过程中“LOG4CPLUS_WARN”: 找不到标识符和无法解析的外部符号(链接错误)的解决方法
- 真正解决win2003的“由于下列错误,Parallel port driver 服务启动失败的解决方法”
- Win10进不了u盘启动该怎么办?win10无法使用U盘启动的解决方法!
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
- 启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
- 启动Mysql 错误 1067 进程意外终止的一种解决方法(转)
- c#使用process.start启动程序报错解决方法
- 使用maven-shade-plugin构建可执行jar 解决junit4测试问题 maven项目