CXF WebShere 冲突问题

在离开公司前的最后一天,作者遇到了在WAS上部署程序时出现jar冲突导致程序无法启动的问题。通过查找资料并排除多个可能原因,最终发现是项目中包含了多余的javax包导致冲突。删除了该jar文件后问题得以解决。整个过程涉及类加载器的顺序设定和理解jar冲突原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


今天是在公司的最后第二天,明天应该离开了。


早上到办公室,主管说昨晚在WAS上部署程序程序出现问题。我问什么问题,说是jar冲突,程序起不来。


我以为一切很好解决,因为昨天下午看到同事打包的时候,没有加入CXF的依赖包,还提醒他加入就可以了。谁料到从早上9点半一直到下午4点15我一直都再解决这个问题,哦,当然了,主要Google了。


这个期间查找资料及博文主要是设定类加载器的顺序,这个真的不是很懂,虽然看过JVM相关的内容,但是实际应用起来,还真的一头雾水。期间当然有去过IBM的员工写的文章,下了他们的程序测试,的确是可以的。可能是基础不够,和我的CXF方式不一致,我是使用CXF 的simple front方式,用这种方式主要是不想将注解侵入到服务类。


当我设定过启动顺序后,我的程序启动就报错了,很奇怪难道不能设定本地加载器优先吗?


记得以前其他项目组也有设定过啊?CXF这么特别吗?接着我试了一个很单独cxf的ws的项目,设定启动顺序,OK。

排除掉CXF的问题,接着注释掉我项目中CXF的bean,不启用CXF再次启动,还是启动不起来。问题已经出来了,是我们项目本身的问题。真的快疯了,我们的项目里有什么特殊的地方吗?


错误大致如下 loader "com/ibm/ws/classloader/CompoundClassLoader@31c031c" ... for a different type with name "javax/servlet/ServletContex

GOOGLE  下,老外说是项目中又javax的包。


最后我在我们的项目lib下发现了servet-api.jar,删掉,Ok


最后写下我们的版本是cxf2.4.3,was是8.5.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值