Jar包冲突是老生常谈的问题,几乎每一个Java程序猿都不可避免地遇到过,并且也都能想到通常的原因一般是同一个Jar包由于maven传递依赖等原因被引进了多个不同的版本而导致,可采用依赖排除.依赖管理等常规方式来尝试解决该问题,但这些方式真正能彻底解决该冲突问题吗?答案是否定的.笔者之所以将文章题目起为“重新看待”,是因为之前对于Jar包冲突问题的理解仅仅停留在前面所说的那些,直到在工作中遇到的一系列Jar包冲突问题后,才发现并不是那么简单,对该问题有了重新的认识,接下来本文将围绕Jar包冲突的…
1.org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/axiom/soap/impl/builder/OMMetaFactoryEx [ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (…
问题描述开发时新增了jar包,当将增量包部署到测试服务器后启动应用出现如下错误提示:java.lang.LinkageError: loader constraint violation: loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) previously initiated loading for a different type with name "org/w3c/dom/TypeInfo&q…
一直对于maven中解决jar包依赖问题的解决方法纠结不清: 下面这个例子可以说明一个很简单的解决方法: 项目启动报错: Connected to the target VM, address: '127.0.0.1:59412', transport: 'socket' SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/document/repository/org…
这个问题可以用was的共享库解决. 具体解决方案如下图所示: 对于有多个jar包冲突时,为每个冲突的jar包都新建一个共享库即可. 我之前的错误操作是以为一个共享库可以添加多个冲突的jar包用分号和逗号隔开. 参考博客:https://www.cnblogs.com/mfrbuaa/p/5076158.html…
升级Log4j2后日志提示jar包冲突: SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/E:/01.work/03.workspace/xxxx/WEB-INF/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:…
启动时,报错信息如下: 28-Sep-2018 16:55:41.567 严重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Error during ServletContainerInitializer processing javax.servlet.ServletException: Failed to instantiate WebApplicationInitializer…
项目启动报错: Connected to the target VM, address: '127.0.0.1:59412', transport: 'socket' SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/document/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.10.0/log4j-s…
Maven中jar包冲突是开发过程中比较常见而又令人头疼的问题,我们需要知道 jar包冲突的原理,才能更好的去解决jar包冲突的问题.本文将从jar包冲突的原理和解决两个方面阐述Maven中jar包冲突的解决办法. 一.Maven中jar包冲突产生原因MAVEN项目运行中如果报如下错误: Caused by:java.lang.NoSuchMethodErrorCaused by: java.lang.ClassNotFoundException 十有八九是Maven jar包冲突造成的.那么j…
一.引言 "老婆"和"妈妈"同时掉进水里,先救谁? 常言道:编码五分钟,解冲突两小时.作为Java开发来说,第一眼见到ClassNotFoundException.NoSuchMethodException这些异常来说,第一反应就是排包.经过一通常规和非常规操作以后,往往会找到同一个Jar包引入了多个不同的版本,这时候一般排除掉低版本.保留高版本就可以了,这是因为一般Jar包都是向下兼容的.但是,如果出现版本不兼容的情况的时候,就会陷入"老婆和妈同时掉进水…
搭了个spring+struts2+mybatis的项目架子, 好久不用myEclipse和tomcat了,生疏了好多. 建议还是去百度一些框架整合的博客,直接使用博客里面给的jar包列表里的jar包,自己随意搭太痛苦了,总是jar包冲突, 而且就算百度,度娘也什么用, 百度前人的经验,告诉我说:这时候你需要谷歌或bing,我试了试,不知道是不是我笨,没领会要领(欲哭无泪·····). but! 你有张良计,我有过墙梯. 我发现百度(或者bing,或者google)如下内容: 搜索      …
SEVERE: Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookservice': Invocation of init method failed; nested exception is org.apache.cxf.service.factory.ServiceConstructionExcepti…
为什么项目的jar包会和tomcat的jar包冲突? 碰到这个问题,猜测tomcat启动时会将自己的lib和项目的lib在逻辑上归并为一个大的lib,但是并没有做版本区分以及去重,这样相同的包可能就有两个引用,启动时自然就不知道用哪个包了,从而引发冲突.纯属猜测,等研究了tomcat的加载过程之后再补充更正.之前下载的How Tomcat Works.pdf还没来得及看,应该能解答所有问题,纯英文版的. 一下是tomcat\lib下的包,框出来的是容易不小心二次引入的包,注意下就好了. 补充:…
今天测试接口,出错:java.lang.NoSuchMethodError: org.apache.http.entity.mime.content.StringBody.<init>(Ljava/lang/String;Lorg/apache/http/entity/ContentType;)V 说是jar包冲突了,搞了半天,还没有解决!…
在JAR 冲突的情况下, 利用Eclipse方式解决JAR包冲突时比较方便简洁的,步骤如下 1. 在Eclipse 中打开pom.xml , 选择  “Dependency  Hierarchy” 2, 在Filter 输入框中,输入冲突的jar,  比如: slf4j 3. 右边会显示所有依赖此包的JAR包 4.  如果你需要排除 冲突, 可以右键单击: 选择  exclude Maven artifact... 进行以上操作后, MAVEN 的依赖关系如下(举列如下:) 排除前: <depe…
一个.问题定义 近期使用sbt战斗assembly发生故障时,包,在package什么时候,发生jar包冲突/文件冲突,两个相同class来自不同jar包classpath内心冲突. 有关详细信息:我有一个self4j的jar, hadoop-common-hdfs的jar包.当中hadoop-common-hdfs.jar内包括了self4j这个jar包,导致冲突. 此类异常通常是由于打包不规范和打包疏忽引起的. (个人觉得正确的打包策略是:仅仅打包自己核心功能.不将依赖打包在一起.可是有时为…
前言 在我之前使用Gradle的博文中已经提到,Gradle对依赖的管理是比较智能的,如果有两个包依赖于相同的包,而版本不同的时候,Gradle会进行自动的选择,从而避免jar包的冲突. 也就是说,在理论上使用Gradle一般情况下,不会出现jar包冲突,那么为什么会有今天这篇博文呢? Gradle可以帮你管理的是版本不同但是包相同的依赖.但是如果两个原本就不同的依赖之间互相发生冲突,这样的冲突Gradle就不能自动帮你完成了,因为它也不知道你需要哪一个. 问题描述 我这边以我出现的冲突为例:…
题记:永远不要在同一个项目中,引用不同版本的两个jar包,否则,这可能就是一个大坑. 在做网校项目的时候,帮助中心要使用lucene,所以就引入了lucene-5.5.1的包,删掉了原先存在于项目中的lucene-3.0.0的包, 由于项目中以前使用了paoding-1.0.0的包,而paoding依赖于lucene,当时并没有意识到这个问题,就直接把lucene-3.0.0的包 删掉了.最后把帮助中心在lucene-5.5.1下做好之后,才发现paoding的功能不能使用了,因为paoding…
PeopleSoft要查找jar包冲突问题,不像maven可以打印出所有依赖,但既然是在JVM上运行,就可以启用JVM参数 路经:%ps_cfg_home%\appserv\Domain 文件名:psappsrv.cfg Section:PSTOOLS 参数:JavaVM Options 方式:附加 [PSTOOLS] ;========================================================================= ; General sett…
jar包依赖冲突,版本不兼容会导致各种各样的问题.这里推荐一款sbt插件用于查找项目中的jar包依赖关系,通过该插件可以轻松的看出某个jar包依赖哪些jar,以及某个jar被哪些jar所依赖.此外该插件还可生成可视化图形用于查看依赖关系. 插件地址:https://github.com/jrudolph/sbt-dependency-graph 引用方式: addSbtPlugin("net.virtual-void" % "sbt-dependency-graph"…
项目运行中错误信息:java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [/app] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The cl…
来自:http://liuwei1578.blog.163.com/blog/static/49580364200991572642653/ Jar包冲突问题是在大型Java软件开发中经常遇到的问题,系统开发人员经常会为解决类似的问题耗费大量的时间进行调试和测试,本文根据各种际情况,结合WebSphere中类加载器,讨论了几种解决jar包冲突问题的办法,并给出了具体实现的步骤及源代码.读者定位为具有Java和WebSphere开发经验的开发人员.读者可以学习到在WebSphere中类加载器的定义…
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I        org.hibernate.hql.ast.HqlSqlWalker.generatePositionalParameter(HqlSqlWalker.java:896)        org.hibernate.hql.antlr.HqlSqlBaseWalker.parameter(HqlSqlBaseWalker.java:4819)        or…
一.起源 引入二方jar maven 包后出现 NoSuchMethodError org.apache.commons.lang3.StringUtils.isNoneEmpty . 第一感觉就是jar包冲突. 二.排除过程 1.打开 idea terminal. 2.输入命令:mvn dependency:tree 发现2个lang包,随后去2.3版本找,发现并没有isNoneEmpty这个方法, 所以程序里引用的commons-lang:jar:2.3. 三.解决方法 由上图可以知道com…
jar包冲突常见的异常为找不到类(java.lang.ClassNotFoundException).找不到具体方法(java.lang.NoSuchMethodError).字段错误( java.lang.NoSuchFieldError)或者类错误(java.lang.LinkageError): 常见的解决方法如下: 1.首先做法是打出工程文件的依赖树,将根据jar包依赖情况判定是不是同一个jar包依赖了多个版本,如果确认问题所在,直接exclusion其中错误的jar包即可: 2.如果通…
一.背景:启动tomcat的时候,报错: java.lang.IncompatibleClassChangeError: class org.springframework.core.type.classreading.ClassMetadataReadingVisitor has interface org.springframework.asm.ClassVisitor as super class 二.原因: spring-test的版本号跟spring-core等相关的spring版本不…
1.jar包冲突报错问题 2.使用的jar包,以及重复jar包 3.删除重复jar包…
原来用过eclipse的都知道,想要升级maven工程的jar包版本或者解决jar包冲突,直接在pom文件下的dependency hierarchy视图下右击冲突的jar包,将其exclude掉,然后在pom文件的dependencies视图下点击add按钮,然后添加自己需要的jar包即可.在公司用的是idea,还不是很熟悉,摸索之下在maven窗口中点击show dependencies出现jar包的依赖关系图,如下图所示:                                  …
在实际的 Maven 项目开发中,由于项目引入的依赖过多,遇到 jar 冲突算是一个很常见的问题了.在本文中,我们就一起来看看,如何使用 IntelliJ IDEA 解决 jar 包冲突的问题!简单粗暴,直接上示例: 标注 1: Maven Project,Maven 项目选项: 标注 2:Dependencies,项目依赖: 标注 3:Show Dependencies,展示项目依赖图. 其中,只有在点击 标注 2 所示的Dependencies之后,才会显示 标注 3 所示的Show Dep…
问题现象:tomcat启动卡死,报错日志如下: 十一月 07, 2017 8:35:45 下午 org.apache.catalina.core.ApplicationContext log 信息: Initializing Spring root WebApplicationContext SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/E:/workspace/.me…