1. 程式人生 > >用axis解析webservice並呼叫

用axis解析webservice並呼叫

使用axis1.4呼叫webservice有兩種簡單的方式:

1、直接使用axis提供的API呼叫,適用於webservice介面的引數和返回值都是String的情況。

Java程式碼  收藏程式碼
  1. try {  
  2.     Call call = (Call)new Service().createCall();  
  3.     call.setTargetEndpointAddress("http://192.168.1.234:8080/TestAxis");  
  4.     Object obj = call.invoke("auth"new String[]{"username","password"
    });  
  5.     System.out.println(obj);  
  6. catch (Exception e) {  
  7.     e.printStackTrace();  
  8. }  

 2、使用axis提供的工具類org.apache.axis.wsdl.WSDL2Java先生成客戶端stub,然後像使用本地方法一樣呼叫遠端介面。可以按如下方式使用WSDL2Java類,WSDL2Java後面可以是url,也可是是wsdl檔案。

    java -Djava.ext.dirs=e:/axis/lib org.apache.axis.wsdl.WSDL2Java http://192.168.1.234:8080/TestAxis.wsdl

這樣在執行java的當前路徑下就會生成TestAxis介面的客戶端stub類。然後使用如下方式呼叫webservice,這種方式適合webservice介面的引數或返回值中包含自定義類的情況。

Java程式碼  收藏程式碼
  1. try {  
  2.     URL url = new URL("http://192.168.1.234:8080/TestAxis");  
  3.     TestAxisSoapBindingStub stub = new TestAxisSoapBindingStub(url,new Service());  
  4.     Account acct = new Account();  
  5.     acct.setName("username");  
  6.     acct.setPassword("password");  
  7.     boolean result = stub.checkAccount(acct);  
  8.     System.out.println(result);  
  9. catch (Exception e) {  
  10.     e.printStackTrace();  
  11. }  
 

經過測試axis1.4既可以呼叫axis釋出的服務,也可以呼叫CXF釋出的服務。

axis1.4的包見附件。