在调用Webservice的时候对于java开发者主要需要做两个操作
一、生成wsdl对应的java类
二、调用java类中的接口
一、第一点主要有3种方法实现
1.使用IDEA内置的wsdl转化工具,但是不建议使用此方式(因为我这样做java类是生成成功了,但是调用时出现了报错,原因未明)
2.使用CXF生成,这个方式适用于较新的Webservice
使用方法
1.下载CXF包
此处放3个链接
百度云:链接:https://pan.baidu.com/s/1WcERGgTe0mVTjqZdzgP3Gw
提取码:xuad头两个官方链接下载的比较慢的可以用百度云
2.下载好后配置环境变量
CXF_HOME的路径放到压缩包解压后的bin的上层目录即可
在PATH中添加 %CXF_HOME%\bin
3.运行cmd敲命令
先输入 wsdl2java ,出现输入提示代表环境配置成功
随后输入完整命令
wsdl2java -d D:\生成文件放置的完整路径 -encoding utf-8 -p org.生成文件的包名 http://Webservice的完整链接?wsdl
没报错就是文件生成成功了
但如果出现了这样的报错,那么代表你用的webservice生成的版本的太低了,需要使用第三种方法
WSDLToJava Error: Rpc/encoded wsdls are not supported with CXF
3.使用axis ,可适用较老版本的webservice
使用方法
1.下载axis包
此处放两个链接,这都是1.4版本的 如果喜欢用axis转化较新的Webservice需要使用axis2及以上
百度云:链接:https://pan.baidu.com/s/1HmVZtL1wS8B_l7Ycxla6OA
提取码:xuad2.新建命令执行文件
在解压缩后的lib文件夹下,如D:\soft\axis\axis-1_4\lib
新建txt文件将下方代码段编写后,将文件后缀改为bat,并双击执行
set Axis_Lib=D:\soft\axis\axis-1_4\lib set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Axis_Servlet=http://Webservice完整链接?wsdl %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -u %Axis_Servlet%
你只需要修改第一行(解压缩后的lib文件夹路径)和第三行(Webservice完整链接)
执行成功后会在lib路径下生成java文件包
二、接口调用
将生成的文件放入你的项目中,有包名之类的报错自行修复哈
接口调用时主要为3行代码
WorkflowServiceServiceLocator wss=new WorkflowServiceServiceLocator();//初始化Locator对象
WorkflowService WorkflowServiceService=wss.getWorkflowService();//初始化Service对象
String oid= WorkflowServiceService.XXX("XXXX");//调用实际接口
其余的优化自行解决哈