Webservice客戶端動態調用(CXF方式)

在網上找了不少例子都沒有看到合適的,完整的,好不容易看到了一個完整的例子,完成了我的艱辛之旅,決定記錄下來,也希望能夠幫到一些人,有寫錯的地方歡迎指出。

webservice的其中一種客戶端實現方式就是生成他的代碼,這種方式個人感覺比較麻煩,特別是結合我的項目業務邏輯來說實在是嚇人。後來才發現原來還可以動態調用,無需生成代碼(原諒我是小白,見識少);貼上我的代碼哈:

public static void main(String[] args) {
//據說這種方式只能訪問自己發佈的webservice,訪問http://ws.webxml.com.cn/上提供服務就報錯(我沒有實驗過)
//http://192.168.71.132:8080/Service/WebService?wsdl是我的Webservice發佈地址
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("http://192.168.71.132:8080/Service/WebService?wsdl");
try {
//參數
String obj1 = "{\"CLASSNAME\":\"WebServiceImpl\",\"METHOD\":\"getALLById\"}";
String obj2 = "{\"ID\":\"25\"}";
//http://webservice.spring.com/是我的命名空間,不知道自己的命名空間的的可以訪問Webservice發佈地址,查看xml文件,前面幾行會有一個namespace那便是了
//show是我要調用的方法名,new Object[]{obj1,obj2}當然就是我要傳進去的參數啦
Object[] objects = client.invoke(new QName("http://webservice.spring.com/", "show"), new Object[]{obj1,obj2});  
String result = objects[0].toString();// 遠程調用 
System.out.println("結果:\n" + result);  
 } catch (Exception e) {  
  e.printStackTrace();  
 }  
}

該文章學習自http://blog.csdn.net/u010509052/article/details/52690117


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