它的URL如下:http://localhost:1234/cal?wsdl,若要撰寫一個用戶端程式去使用這個Web Service,我們要先產生它的代理程式(artifact),很方便地,在JDK 6中的「bin」目錄下,就有一個「wsimport」程式,可以讓我們用來產生用戶端程式所需的代理程式。
若在安裝Java時,有在「Path」中設定好Java的執行目錄(bin),則開啟「命令提示字元」,在「命令提示字元」輸入「wsimport」,應該會出現下列畫面中的結果,他會提示一些這個指令使時的說明。
接著把上列WSDL的URL代入到這個指令的參數中,為了方便,在「命令提示字元」先切換資料夾到事先建立好的Java專案目錄下的「src」中,然後輸入如下指令:「wsimport -keep -p idv.bio.ws.artifact http://localhost:1234/cal?wsdl」後按下「Enter」,執行結果如下:
其中,「-keep」是表示要產生原始碼,也就是Java檔,「-p」表示產生出來的Java檔中所屬套件設定。
在Eclipse中,重新整理之後,在「src」下,應該可以看到下列程式已經產生出來:
接著,先建立一個「idv.bio.ws.client」的套件,在之中新增一支「CalculatorClient.java」,其內容如下:
package
idv.bio.ws.client;
import
idv.bio.ws.artifact.Calculator;
import
idv.bio.ws.artifact.CalculatorService;
public
class
CalculatorClient {
public
static
void
main(String[] args) {
CalculatorService
service = new
CalculatorService();
Calculator
port = service.getCalculatorPort();
System.out.println("2
+ 6 = " + port.add(2, 6));
}
}
執行結果印出:2 + 6 = 8
說明:
- 程式的第一步,找出WSDL中,
name="CalculatorService">對應的類別,它應該會繼承「javax.xml.ws.Service」這個類別,使用它產生一個物件。 - 然後使用上列物件,使用「get
Port」的方法,得到一個對應到 name="Calculator">名字的介面的實作物件。 - 使用這個實作物件,就可以使用WSDL中,「portType」元素(element)內定義的「operation」了。
沒有留言:
張貼留言