webService 客戶端呼叫 axis2
今天找出來給同事用,重新改了下 給同事.
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.transport.http.HTTPConstants;
public class Client {
//private static String url = "http://webservice.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
// targetEPR指定打包的Service(.aar檔案)在容器中的物理位置。
//EndpointReference端點引用
private static EndpointReference targetEpr;
//建立request SOAP包工廠 fac。
private static OMFactory fac = OMAbstractFactory.getOMFactory();
public static OMElement getMethodOMElement(String nameSpace,String tns,String methodName,String[] args,String[] vals){
// OMNamespace指定此fac SOAP文件名稱空間。
//有一個tns的namespace,這個namespace和目標的介面有關,一定要和目標 wsdl的message傳輸介面一致 是tns
OMNamespace omNs = fac.createOMNamespace(nameSpace,tns);
//建立元素getWeatherbyCityName oap,並指定其在omNs指代的名稱空間中。 方法函式
OMElement method = fac.createOMElement(methodName,omNs);
//給method新增 這個方法的引數名,和引數值
for(int i =0;i<args.length;i++){
//新建引數OMElement物件例項,設定引數名
OMElement params = fac.createOMElement(args[i],omNs);
//給引數名物件設定引數值
params.setText(vals[i]);
//將引數OMElement物件新增到Method物件中
method.addChild(params);
}
//返回request的方法 SOAP包
return method;
}
public static void main(String[] args) throws AxisFault {
OMElement result = new Client().getResult("http://**********/EnterpriseService.asmx?wsdl",
"http://tempuri.org/method", "http://tempuri.org/", "tns", "method",
new String[]{"paramName"}, new String[]{"value"},60000);
System.out.println(result.toString());
}
/****
*
* @param url webService wsdl地址
* @param SOAPAction SOAPAction的地址在方法中 請求頭裡面有SOAPAction: "http://tempuri.org/*******"
* @param nameSpace 名稱空間 xmlns="http://tempuri.org/"
* @param tns 為空好像也可以 我是用 "tns"
* @param method 方法名
* @param params 方法傳入引數名稱
* @param values 方法傳入引數值
* @return 返回結果 OMElement 型別
* @throws AxisFault
*/
public OMElement getResult(String url,String SOAPAction,String nameSpace,String tns,String method,String[] params,String[] values,int waitTime) throws AxisFault{
targetEpr = new EndpointReference(url);
ServiceClient client = new ServiceClient();
Options options = new Options();
options.setTimeOutInMilliSeconds(waitTime);
options.setAction(SOAPAction);
options.setTo(targetEpr);
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);//設定傳輸協議
options.setProperty(HTTPConstants.CHUNKED, "false");
client.setOptions(options);
OMElement method1= getMethodOMElement(nameSpace,tns,method,params,values);
OMElement result = client.sendReceive(method1);
return result;
}
}
相關文章
- Axis2呼叫WebServiceWeb
- xfire 客戶端呼叫webservice的問題客戶端Web
- axis2 WebService的釋出與呼叫Web
- CXF建立webservice客戶端和服務端Web客戶端服務端
- 【知識積累】伺服器端獲取客戶端的IP地址(當客戶端呼叫由Axis開發的WebService)伺服器客戶端Web
- 生成Webservice客戶端的4中方法Web客戶端
- Java建立WebService服務及客戶端實現JavaWeb客戶端
- .net客戶端呼叫activeMQ程式碼客戶端MQ
- 使用cmd webservice wsdl網址生成客戶端程式碼Web客戶端
- Java建立WebService服務及客戶端實現(轉)JavaWeb客戶端
- CouchBase C 客戶端介面呼叫例項客戶端
- 以 Laravel 的方式呼叫 ai 客戶端LaravelAI客戶端
- C# 獲取客戶端資訊 /asp.net/WebService/WebFormC#客戶端ASP.NETWebORM
- .Net Remoting服務端與客戶端呼叫示例REM服務端客戶端
- 在指令碼中呼叫cassandra客戶端命令指令碼客戶端
- spring mina整合(客戶端進行呼叫)Spring客戶端
- CXF入門教程(3) -- webService客戶端開發步驟詳解Web客戶端
- 在客戶端儲存對EJB的遠端呼叫是否可行?客戶端
- 如果呼叫遠端遠端url介面為https,且存在客戶端證書驗證,如何在客戶端處理HTTP客戶端
- iOS呼叫QQ客戶端發起臨時會話iOS客戶端會話
- dubbo客戶端客戶端
- Pulsar客戶端客戶端
- mqtt 客戶端MQQT客戶端
- 使用WebService釋出soap介面,並實現客戶端的https驗證Web客戶端HTTP
- WebService框架大比較(Axis,axis2,Xfire以及cxf)Web框架
- asp.net程式呼叫NTFS分割槽下Oracle客戶端ASP.NETOracle客戶端
- 客戶端,服務端客戶端服務端
- 服務端,客戶端服務端客戶端
- Nacos - 客戶端心跳續約及客戶端總結客戶端
- CXF 呼叫方式——動態建立客戶端(呼叫穩定版本號為2.7.18)客戶端
- webservice介面呼叫Web
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端
- Spring Cloud實戰系列(二) - 客戶端呼叫Rest + RibbonSpringCloud客戶端REST
- Dubbo-go 原始碼筆記(二)客戶端呼叫過程Go原始碼筆記客戶端
- C# 客戶端程式呼叫外部程式的三種實現C#客戶端
- 在網頁如何呼叫客戶端的可執行檔案網頁客戶端
- 怎樣在websphere環境外的客戶端呼叫webshphere的ejb?Web客戶端
- 客戶端加解密客戶端解密