Java使用Axis调用WebService
2019-03-18 本文已影响467人
LssTechnology
1、WebService的实现方式
Webservice是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。 据我所知WebService最常见的实现方式有主要AXIS、CXF及XFire比较多,这里是我用AXIS直接实现不使用wsdl的实例
2、实例
先导入需要的jar包
链接: https://pan.baidu.com/s/1H1iB_qUP9NPKXwbK_AfEWA 提取码: x7yj
将axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、wsdl4j-1.5.1.jar导入java项目中
接下来就十分简单了
package com.lss.service;
import lombok.extern.slf4j.Slf4j;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.encoding.XMLType;
import java.net.URL;
@Slf4j
public class WebService {
public void requestService(){
try {
Service service = new Service();
Call call = (Call)service.createCall();
String endpoint = "http://203.23.12.1:8010/webService"; // 命名空间
call.setTargetEndpointAddress(new URL(""));
call.setOperationName("request"); // 需要请求的方法
call.addParameter("param1", XMLType.SOAP_STRING, ParameterMode.IN); // 入参
call.addParameter("param2", XMLType.SOAP_STRING, ParameterMode.IN); // 入参
call.addParameter("param3", XMLType.SOAP_STRING, ParameterMode.IN); // 入参
String param1 = ""; // 参数
String param2 = ""; // 参数
String param3 = ""; // 参数
call.setReturnType(XMLType.SOAP_STRING); // 设置返回值
String result = "";
result = (String) call.invoke(new Object[] {param1, param2, param3}); // 调用获取返回值
log.info("请求结果:{}", result);
}catch (Exception e){
e.printStackTrace();
}
}
}
按上述请求获取返回值即可