java調用別人的webservice接口 soap

原文鏈接:https://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_4.html

本文轉載自:https://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_4.html

未見不允許轉載提示,如有冒犯,請聯繫作者刪除!!!

郵箱:[email protected]

親測有效!!!

 

第四種使用java語言調用webservice方法如下:

第四種方法引入的包爲axis的包

import org.apache.axis.*

下面是測試代碼:

public String test() throws Exception 
 {

//接收返回值
 String result ="";

//實例化訪問對象
 Service service = new Service();   

//實例化調用對象
    Call call = (Call) service.createCall();

//在調用對象中添加webservice地址
    call.setTargetEndpointAddress(new java.net.URL(webServiceURL));  

//在調用對象中添加webservice對應的命名空間,以及將要調用的函數名
    call.setOperationName(new QName(namespace,operationName));

//設置入參,第一個參數是命名空間以及參數名,這兩個參數是採用一個Qname變量打包傳入的,第二個參數是入參的類型(字符或者數字)第三個參數是入參種類

//“IN”的含義代表入參
    call.addParameter(new QName(namespace,"para1"), 
           org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

//第二個參數與前面一樣
    call.addParameter(new QName(namespace,"para2"), 
           org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);

//是否是soapaction這裏需要看webservice是否要求如下格式,如果沒有要求可以不添加此設置

    call.setUseSOAPAction(true);

//設置返回值格式(字符串或者組裝對象)
    call.setReturnType(org.apache.axis.encoding.XMLType.SOAP_STRING);

//如果前面要求是soapaction的話需要添加下面這句話,用來之中是訪問那個命名空間上的那個方法
    call.setSOAPActionURI(namespace + "/" + operationName);

//調用,參入兩個入參para1和para2的值,並且將返回值轉換爲String類型
    result = call.invoke(new Object[]{para1,para2}).toString();
    return result;
 }

 

下面是前三種調用方式的傳送門:

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_3.html

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_2.html

http://www.cnblogs.com/Sabasdian/p/JavaAndWebservice_1.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章