最近发现了一个很好用的工具,可以根据WSDL文件来生成webservice客户端代码,省去了我们自己手动开发webservice客户端的麻烦,简单好用,用法如下:
1、下载axis1.4,解压;
2、在axis-1_4目录下新建wsdl2java-client.bat(.bat批处理文件,可任意命名)文件,增加内容如下:
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -p com.lmb.client.ws C:\Users\Administrator\Desktop\axis-1_4\axis-1_4\lmbtest.xml
pause
注意:其中com.lmb.client.ws为生成的客户端代码的包路径,C:\Users\Administrator\Desktop\axis-1_4\axis-1_4\lmbtest.xml为wsdl文件。
3、双击wsdl2java-client.bat:
可以看到相关路径下生成的客户端代码如下:
4、调用方法如下:
public class WebServiceClientTest{
public static void main(String[] args){
String wsdl = "http://xxx.xxx.xx.xx:8082/csp/services/c_lttb/orderToHeLiWebservice";
String requestStr = "";
// 有些webservice需要登录,登陆后才能进行一些操作,这个需要设置如下两个参数:
//1、 超时时间
stub.setTimeout(1000 * 60 * 20);
//2、 次数设置true,登录后才能保持登录状态,否则第二次调用ws方法时仍然会提示未登录。
stub.setMaintainSession(true);
org.apache.axis.client.Service service = new org.apache.axis.client.Service();
OrderToHeLiWebserviceHttpBindingStub stub = new OrderToHeLiWebserviceHttpBindingStub(
new java.net.URL(wsdl), service);
String response = stub.urgeWorkOrderServiceSheet(requestStr); //调用ws提供的方法
System.out.println("response >>> " + response);
}
}