webService調用淺談(三)


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

第三種方法引用的是javax包

下面是測試代碼:

 public String test() throws Exception
 {  

  //用來存放返回值串
  String result = "";
  try
  {

 //這一句的作用是定義系統的操作變量,有些程序在不添加這段代碼的時候也運行正常。
   System.setProperty(org.apache.axis.client.ServiceFactory.SERVICEFACTORY_PROPERTY,"org.apache.axis.client.ServiceFactory" );

  //定義訪問變量,參數一位webservice的訪問地址,參數二位webservice使用的命名空間
   QName servicename = new QName(webServiceURL,namespace);

  //定義操作變量,操作變量中傳入的參數為前面已經定義的訪問變量
   javax.xml.rpc.Service service = ServiceFactory.newInstance().createService(servicename);

  //實例化調用變量
   javax.xml.rpc.Call call = service.createCall();

  //添加調用地址
   call.setTargetEndpointAddress(webServiceURL);

  //添加調用的函數的命名空間以及函數名稱
   QName operationname = new QName(namespace, operationName);

  //設置調用操作

   call.setOperationName(operationname);

 //定義傳入的參數,參數1是入參名大小寫敏感,參數2為參數類型(字符/數字……),參數3為參數類型(入參/出參)
   call.addParameter("para1",XMLType.XSD_STRING,ParameterMode.IN );

 //第二個參數的定義同上
   call.addParameter("para2",XMLType.XSD_STRING,ParameterMode.IN );

  //定義返回值的格式,第一個參數為命名空間,第二個參數為返回值類型,這里需要注意的是返回值的類型是webservice開發商提供,我們需要與其保持一致
   QName returnname = new QName(namespace, "string");
   call.setReturnType(returnname, String.class);

  //進行調用傳入對應入參的值,並且將返回的對象轉換為字符串。
   result = call.invoke(new Object[]{para1,para2}).toString();

  //異常處理
   if(result==null)
   {
    result = "";
   }   
  }
  catch (ServiceException e)
  {
   e.printStackTrace();
  }  
  catch (RemoteException e)
  {
   e.printStackTrace();
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
  return result; 
 }

下面是第一種和第二種調用方式的傳送門,感興趣的朋友可以也去看看。

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM