第三種使用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; 
 }
下面是第一種和第二種調用方式的傳送門,感興趣的朋友可以也去看看。
