最近有遇到开发webservice接口的问题,以前常方式是用axis1.4开发
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
String endpoint = "http://xx.xx.xx.xx:7777/services/xx?wsdl";//指明服务所在位置
Service service = new Service(); //创建一个Service实例,注意是必须的!
Call call = (Call) service.createCall();//创建Call实例,也是必须的!
call.setTargetEndpointAddress(endpoint);
call.setOperationName(method);
String rs = (String)call.invoke(para);//返回String,没有传入参数
最近遇到部分要求用soap方式做的,整理了一下:
首先配置环境变量
执行如下bat文件
set Axis_Lib=D:\workspace\xx\WEB-INF\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Package=com.test
set Output_Path=.
@%Java_Cmd% org.apache.axis.wsdl.WSDL2Java ddd.wsdl -o%Output_Path% -p%Package% -t
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -help
pause
则在当前目录生成对应 ddd.wsdl文件的代码, 将代码复制进项目工程调用即可,调用方式如下:
URL url =new URL("http://xxx.service.com.cn/xxService.asmx");
// 如果需要配置代理
// AxisProperties.setProperty("http.proxyHost", "xxx.xxx.xxx.xxx");
// AxisProperties.setProperty("http.proxyPort", "40000");
ServiceLocator rl = new com.xxServices.ServiceLocator();
ServiceSoap rs = rl.getServiceSoap(url);
String strXML= "XML 参数";
String result = rs.getReceive(strXML);