2009-10-21

use java to call web service

目標:

寫一個 java, 用以呼叫一由 dotnet 開發的 web service method

開發工具:

Eclipse

簡單的來說, 先新增一個 web service client, 接著找到 web service soap proxy 類別來使用即可。

步驟:
(1) 在 Eclipse 專案上, 新增一個 web service client:
      new - other... - Web Services - Web Service Client
      輸入 web service WSDL , 如: http://localhost/Hello/HelloWorld.asmx?WSDL
    
      接著在 src 下, 會新增 org.tempuri ; 而在這底下, 會出現一些 .java 的檔案。
      如果在 web service 之中, 定義或用到了許多 class, 則會產生像 class1.java, class2.java 的檔案。

(2) 如何使用呢?
     首先, 偷懶的話, 先 import 一下:
import org.tempuri.*;
     假設 web service 定義名稱為 Service1 class 的話, 則會有 Service1.java, Service1Soap.java, Service1SoapProxy.java, ......。
  
     上列前兩個是 interface, 而第三個 Service1SoapProxy 這個才是類別, 用來與 web service in server 連接。

String uri = "http://localhost/Hello/HelloWorld.asmx";
 BWECSearchServiceSoapProxy s = new BWECSearchServiceSoapProxy(uri);

Result qr = s.query("mp3");

for (Document doc : qr.getDocs())
{
  ......
}

// 其中, query() 為 web service method, Result, Document 為 web service 中定義之類別, Docs 為 Result 類別中之一屬性, 型別為 Document[]

打完收工!

ps:
如果 eciplise 下載了繁體的 menu 的話, 那很有可能會發生一件事:
新增 - 其他... ( new - others... )被 disable 了, 也就是無法新增其他類型的檔案, 如 web service client。
不過, 只需移除繁體 menu , 重啟後就恢復正常了。

0 意見:

張貼留言