最近有遇到开发webservice接口的问题,以前常方式是用axis1.4开发
class="java">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);
?