soap方式的遠端呼叫示例程式碼
阿新 • • 發佈:2019-02-18
需要jar包根據import的內容檢視.
axis是升級版
package com.soap;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
/**
* soap方式遠端訪問
* @author znph_張春玲
*
*/
public class SoapAxisTest{
public static void main(String[] args) {
// 名稱空間
String nameSpace = "http://zjgwyjx.org/";
// 訪問方法
String methodName = "LoadData";
// 服務地址
String url = "http://218.90.170.6:13567/Service1.asmx";
String actionUrl = nameSpace + methodName;
Object returnObj = null;
try {
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
QName qName = new QName(nameSpace, methodName);
call.setOperationName(qName);
call.setSOAPActionURI (actionUrl);
// 介面方法的引數名, 引數型別,引數模式 IN(輸入), OUT(輸出) or INOUT(輸入輸出)
call.addParameter(new QName(nameSpace, "DID"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(nameSpace, "SDate"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName(nameSpace, "EDate"), XMLType.XSD_STRING, ParameterMode.IN);
// 對應引數
Object[] paramValues = new Object[] { "10301", "2017-08-01 00:00:00", "2017-08-01 23:59:59" };
call.setTimeout(6000);
call.setReturnType(XMLType.XSD_STRING);
call.setTargetEndpointAddress(new URL(url));
returnObj = call.invoke(paramValues);
System.out.println(returnObj);
} catch (Exception ie) {
ie.printStackTrace();
}
}
}