axis介紹
axis全稱Apache Extensible Interaction System 即阿帕奇可擴展交互系統(tǒng)龙誊。Axis本質(zhì)上就是一個SOAP引擎逞泄,提供創(chuàng)建服務器端莲组、客戶端和網(wǎng)關(guān)SOAP操作的基本框架绿聘。Axis并不完全是一個SOAP引擎惰爬,它還是一個獨立的SOAP服務器和一個嵌入Servlet引擎(例如Tomcat)的服務器金刁。
需要的jar包
axis.jar
jaxrpc.jar
saaj.jar
commons-logging.jar
commons-discovery.jar
wsdl4j.jar
代碼Demo
package https;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
public class AxisWebserviceDemo {
public static void main(String[] args) {
String url = "http://域名或者IP地址/SynchronousService.asmx";//接口地址
String targetNamespace = "http://192.168.0.30/"; //<wsdl:definitions>元素的targetNamespace屬性值
Service service = new Service();
try {
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// (標準的類型)
call.setUseSOAPAction(true);
call.setOperationName(new QName(targetNamespace, "GetRand")); // 設(shè)置要調(diào)用哪個方法
// 在創(chuàng)建QName對象時循签,QName類的構(gòu)造方法的第一個參數(shù)表示W(wǎng)SDL文件的命名空間名级乐,也就是<wsdl:definitions>元素的targetNamespace屬性值
call.setSOAPActionURI(targetNamespace + "GetRand");
call.addParameter(new QName(targetNamespace, "user"), // 設(shè)置要傳遞的參數(shù)(形參)
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
call.addParameter(new QName(targetNamespace, "password"), // 設(shè)置要傳遞的參數(shù)(形參)
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
Object[] params = new Object[] { "admin", "abc123" };// 設(shè)置要傳遞的參數(shù)(實參)
String response = (String) call.invoke(params);// 調(diào)用方法并傳遞參數(shù)
System.out.println(response);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}