如何在was中解决jar包冲突最好的解决方式

WAS上部署Jmx应用中包冲突解决过程-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
WAS上部署Jmx应用中包冲突解决过程
来源:互联网 更新时间: 4:36:31 责任编辑:鲁晓倩字体:
?WAS上部署Jmx应用中包冲突解决过程
近日,在was6.0上面部署基于JMX的一个应用,出现一个JMX类的JMXConnectorFactory.resolveClassLoader()的MethodNotFound的错误,但是明明JMX的类也就是jmx-remote.jar包里面的类有该类的方法,如图:?
? 在开发机器上的tomcat上跑没有错,为什么布署在was上就有问题,肯定是环境出了问题,幸好有点was部署经验,出现此类java ERROR级别的错误,绝大多数是jar包冲突的的问题,于是打开was控制台,利用was的类装入器查看器发现在was的一个名为management.jar包里面也有同为JMXConnectorFactory的类,于是抓下来一看究竟。
?果然不出所料,没有resolveClassLoader方法,然而management的类加载层次肯定是比jmx-remote.jar的层次高,默认的类加载策略是先加载父类,理说当然,jmx-remote.jar包中的类不可能被加载。
?? 说起为什么冲突,还得说说历史。Jmx在jdk1.4时代是作为sun的一个扩展包存在的,并不是标准的jdk的包,于是乎ibm也有他的jmx的实现,而且包名和sun的一样,要是不一样就不会有冲突了。
??好吧,能不能不使用基于JMX的包里面的实现,用management里面的实现呢,结果很失望,management里RmiConnectorServer根本没有实现。自己照着jmx-remote.jar里面的实现重写?实践了才发现不可能,重写一个得重写几十个类,还不能保证运行正常。
? 由于jmx的jar包在was上面部署的时候是采用共享包的方式部署的,我首先考虑的是能否考虑这个共享库的加载方式,改成后加载父类。为了便于理解
相关文章:
上一篇文章:下一篇文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号jar包冲突常见的异常为找不到类(java.lang.ClassNotFoundException)、找不到具体方法(java.lang.NoSuchMethodError)、字段错误(&java.lang.NoSuchFieldError)或者类错误(java.lang.LinkageError);
常见的解决方法如下:
1、首先做法是打出工程文件的依赖树,将根据jar包依赖情况判定是不是同一个jar包依赖了多个版本,如果确认问题所在,直接exclusion其中错误的jar包即可;
2、如果通过看依赖树不能确定具体冲突的jar包,可以使用添加jvm参数的方式启动程序,将类加载的具体jar信息打印出来;-verbose:class
3、经过上述步骤基本就可以解决jar包冲突问题,具体的问题要具体分析,当问题不可重现时上述方法均不会奏效;
如果当遇到应用重启冲突不可重现的情况建议将每次异常信息进行重点的保留,方便不可重现时进行分析;
例如,碰到一例bean初始化失败:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tfsManager' defined in URL [jar:file:/home/admin/wireless-qrshare/target/wireless-qrshare.war/WEB-INF/mon.config-1.0-SNAPSHOT.jar!/mobile/biz-service.xml]: Instanti nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [mon.tfs.DefaultTfsManager]: Constru nested exception is java.lang.VerifyError: Cannot inherit from final class
此时定位到tfsManager这个bean初始化内部调用的类:
通过查找定位到httpcore的版本存在冲突;
阅读(...) 评论()如何解决maven,jar包冲突问题?_maven吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:894贴子:
如何解决maven,jar包冲突问题?
tomcat下有servlet-api.jar,我pom.xml文件中不知道哪里依赖到这个文件了。怎么查找是那个依赖的,然后如何屏蔽掉依赖?
橱柜需要使用很多年?
你报的错误是什么,贴出来……我记得是个plugin,写对应servlet版本~
贴吧热议榜
使用签名档&&
保存至快速回贴}

我要回帖

更多关于 jar包冲突最好的解决方式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信