使用maven打包jar后 执行jar包问题,Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefi
来源:互联网 发布:美团金融java开发 编辑:程序博客网 时间:2024/06/05 18:42
本人第一次发帖写的不是很好。希望大家体谅体谅。。。
最近研究maven,然后用maven管理项目,打包项目后发现执行就报错,上网差了很久终于解决了。
废话不多说了,看下面。
很多人使用maven打包后执行jar出现一个错误;
Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context]Offending resource: class path resource [applicationContext.xml] at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:316) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1421) at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:187) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:141) at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:110) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:335) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:216) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:187) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:251) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127) at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:542) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:454) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at hotdata.dmp.match.run.DataMatch.main(DataMatch.java:17)
在打包时后面的会把前面的覆盖,使得这两个文件中永远只保存最后一个spring依赖的schema和handler。
主要把这两个加上就没问题了
<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>
这是maven的shade打包
<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><transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.handlers</resource></transformer><transformerimplementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"><resource>META-INF/spring.schemas</resource></transformer><transformerimplementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>com.chenzhou.test.Main</mainClass></transformer></transformers></configuration></execution></executions></plugin>
这是maven的assemby打包
<build> <plugins> <!-- <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.payplat.dacq.impl.AutoJob</mainClass> </manifest> </archive> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.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> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build>
然后重新打包 mvn package就没问题了。
0 0
- 使用maven打包jar后 执行jar包问题,Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefi
- maven打包包含依赖jar Exception in thread "main" org.springframework.beans.fa
- Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException
- Spring 中 Exception in thread "main" org.springframework.beans.factory.BeanCreationException:问题解决
- Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactor
- Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating b
- Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Li
- Exception in thread "main" java.lang.NoSuchMethodError: org.springframework.beans.factory.annotation
- Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Li
- Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qua
- org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
- org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
- org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
- org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
- org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
- org.springframework.beans.factory.parsing.BeanDefinitionParsingException
- Spring与Hibernate冲突的jar包(org.springframework.beans.factory.BeanCreationException:)
- 关于org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML d
- Jquery SerializeObject - 将form表单转化成Javascript object
- ios的blog(慢慢更新)
- 枚举的一些用法
- JS,Jquery获取各种屏幕的宽度和高度
- linux 常见命令
- 使用maven打包jar后 执行jar包问题,Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefi
- AnimationUtils类:动画工具类
- jsp获取到用户请求的链接
- 子窗口全屏和还原实现
- JS基础:1.1 HelloWorld
- JS基础:1.2定义JS标签和输出
- 数据结构学习笔记之链表(C语言版)
- JS基础:1.3 引用JS文件
- POJ 1014 Dividing