调用webservice接口无法生成客户端代码,java.lang.NoSuchMethodError: org apache.commons.logging.LogFactory.getClassL

日常开发中经常会遇到各种各样的问题,今天在调用webservice接口生成客户端代码时一步一个坑。

首先我是springboot项目,原本是要利用idea生成客户端代码,结果不仅生成失败,还报了一个乱码的错,根本不知道错误信息是什么。最后各种方法测试之后,终于有一个可以让我生成。下面就说一下我遇到的情况,以及三种生成代码的方法,大家根据自己的情况适用吧。

正常来讲利用idea生成客户端代码的步骤如下:

在项目或者要生成客户端代码的包右键

 

这里第一个url选项也可以换成选择本地.wsdl文件。结果是一样的,一个是利用远程下载,一个是从本地读取。两种方式都可以,这里不做赘述。

 

 如果你的可以利用idea执行这里生成客户端代码,到这里就可以利用生成的代码文件。自己写个调用方法进行测试了。

 

 

如果你遇到了和我一样利用idea生成webservice接口客户端代码报错,如下

图上的乱码通过其他方法我了解了报错信息是:

webservice 不支持使用SOAP协议扩展元素中包含use=“encoded“

这里介绍第二种方法,造成这个问题可能是webservice接口服务端在编写的时候协议版本不一致,这个webservice接口为 axis1.4 来编写的。所以生成客户端代码需要用较低版本的jdk(此时我是jdk1.8)。需要更换自己本地jdk版本到1.6. 然后利用wsimport的方式生成接口代码。(因为咱们springboot项目jdk版本是1.8,这里我不想更改idea中环境,不影响项目其他功能。就更新了本地jdk版本)

打开本地cmd,执行命令

wsimport -keep -d P:\code\class -s P:\code -p com.icbccs.login -verbose 接口url

 -s生成.java 文件地址 -d生成.class文件地址 -p是包路径 -verbose是url路径

如果这里你可以成功生成。那么恭喜你用不上第三种方法了。如果和我一样如上图报错,咱们接着看第三种方法。

这里需要下载axis1.4的包。然后执行语句

java -cp mail.jar;saaj.jar;jaxrpc.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;axis.jar;activation.jar;wsdl4j-1.5.1.jar org.apache.axis.wsdl.WSDL2Java com.icbccs.login -p com.icbccs.login

 ​​​​​​​

至此在对应的包路径下会发现生成了.java文件,然后你就可以把这些文件拷贝到你的项目对应目录中。写调用方法调用对应接口方法啦。​​​​​​​

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值