axis报错Could not initialize class org.apache.axis.client.AxisClient解决办法
axis的discovery在排除commons-logging之后重新引入不要引1.2版本,尝试使用1.0版本
近来接手一个接口平移任务,把旧的接口平移至新平台中。
旧的接口使用了axis作为webservice工具,版本为1.4,在jar包中的META-INFO文件中可见
随后一切照步骤来,引入依赖,注意在discovery的jar中排除了commons-logging的依赖,因为其自动引入的commons-logging会引起冲突,这也是网上大部分解决方案,
排除,并重新引入commons-logging
在上面依赖的基础上,再加上
commons-logging commons-logging 1.2
到此,网络上的大多解决方案就完成的,但是我启动依旧报错,错误也没变,no such method,无法初始化之类的,就在这行开始执行,也就是axis开始初始化的时候
Call call = (Call) service.createCall();
随后我开始思考,commons-logging 1.2的依赖我不引入也可以在项目依赖目录下看到commons-logging1.2的jar包,这很可能是别的jar也依赖了commons-logging,并且做了排除,然后自动引入某个版本的commons-logging,即1.2版本,也就是说,我的commons-logging的依赖是存在的,就是1.2版本,但axis仍无法初始化
于是我开始排查
1 核对axis版本
2 验证jar是否引入齐全
3 确定commons-discovery中的commons-logging正确排除,写法无误
编译无问题,但是到上面那行代码依旧报错,接口无法走通。最后,我开始怀疑axis1.4是否依赖commons-logging1.2,于是尝试将commons-logging改为1.0重新引入,然后,接口直接通了
几乎所有网络方案给的都是commons-logging1.2对应axis1.4,思路没有错,是jar冲突,只是版本不太对。如果你也在处理类似的问题,希望这篇博客可以给你一点帮助
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
