前言
前几天有个webservice
的API要调用,最开始用的是xfire
发现有的方法能调通,有的不行。百般折腾后看到有网友说使用这样的方式可以,然后试了一下确实不错,分享给大家。
一、下载安装
下载apache-cxf发布包:http://cxf.apache.org/download.html
二、解压
假设解压在D盘
三、设置环境变量
在Windows系统的控制面板–所有控制面板项–系统–高级系统设置–环境变量中设置如下值:
CXF_HOME=D:\apache-cxf-3.3.3
path=;%CXF_HOME %/bin;
四、运行
首先要求安装jdk,如果没有的请查看我另外的帖子《JDK的安装及环境变量配置》。
打开命令行模式
输入wsdl2java -help
可以看到相关提示
生成客户端代码
wsdl2java -encoding utf-8 -d D:/20190906 http://xxx.com/services/DemoService?wsdl
其中http://xxx.com/services/DemoService?wsdl
就是webservice的api接口,D:/20190906
是指定代码生成的地方。
执行成功后在D:/20190906
目录有已经生成好的客户端代码
然后把整个目录包拷贝到你的java工程里面。
五、调用示例
DamageService_Service service = new DamageService_Service(); DamageService damageService = service.getDamageServicePort(); DamageCaseResults result = damageService.getCompleteCase();
这里的result就是你想要的结果,这样写起代码来也很简洁。
六、答疑
- 如何确认哪个是服务调用类,如上面示例中的
DamageService_Service
首先这个肯定是以Service
结尾,如果不是也不用看了,如果有多个可以打开来看一下
是否有@WebServiceClient
的定义,如果有就基本上确定了。
再不行就逐个试一下,总能找到。
2.如何调用方法
首先认证查看api http://xxx.com/services/DemoService?wsdl
描述,看看有哪些方法,然后直接使用服务调用类去调用就OK了。
参考: