本文編碼環境:Eclipse SDK 3.2.2,Tomcat6,XFire-1.2.6。這裡我用了個外掛程式,需要的朋友自己去看,這個外掛程式的使用你會發現JAVA調用幾乎和C#的VS一樣簡單了。
使用外掛程式。
首先建立一個java項目XFireProject,然後依次選擇菜單File->New->Other ,選擇XFire檔案夾下的Code generation from WSDL document,開啟代碼產生嚮導
假設你要調用的webservice的名字是HelloWorld,這個有一個WebMethod叫SayHey(string name).那你找一下自動生產的那些類,裡面應該有個叫HelloWorldClient的.下面的代碼示範了如何使用:
HelloWorldClient serviceClient = new HelloWorldClient();
HelloWorldSoap soap= serviceClient.getHelloWorldSoap();
String result=soap.SayHey("notus");
總的來說,就是xfire會用你提供的wsdl地址產生類,而和vs不同的是,你需要兩步才能調用到你的webmethod.
如果你安裝上面的步驟一步一步來了,那很好,最後你註定沒有辦法運行成功-_- 因為,因為這個畢竟不是真的vs,在運行前,你需要做一個設定.
從你的項目的右鍵菜單裡調出Properties配置視窗,選中左面一欄中的XFire項,右面會列出所有與XFire運行有關的類庫,選中的類庫,這樣就萬事大吉了。
WSDL的地址欄填入http://localhost:8080/WSProject/services/HelloService?wsdl,Output directory欄中點瀏覽按鈕,選擇我們剛才建立的項目XFireProject,這兩項是必填的。可選項中,package一欄可以選已經存在的包名,如果不填這一項,代碼產生器會在wsdl目標命名空間的基礎上建立一個。
完成後,可以看到項目中多了XFire類庫,還有package下面的產生的一些類。此時要保證IDE的Tomcat伺服器是開啟的。
此時,在調用服務之前,還有一個重要的步驟,從XFireProject項目的右鍵菜單裡調出Properties配置視窗,選中左面一欄中的XFire項,右面會列出所有與XFire運行有關的類庫,按圖三中所示的,選中一些類庫,這些類庫在調用本服務時是必須的。
所有的配置都已經完成,最後就是編寫程式碼完成調用。代碼如下:
package wsClient;
import hao.HelloServiceClient;
import hao.HelloServicePortType;
public class Invoke {
/** *//**
* 這個方法調用web服務並返回服務執行的結果
*架構師kcvg合并段
* @param yourName
* @return
*/
public static String invokeServiceNow(String yourName)
{
HelloServiceClient service=new HelloServiceClient();
HelloServicePortType port=service.getHelloServiceHttpPort();
return port.sayHello(yourName);
}
/** *//**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String MyName="Kcvg";
System.out.println(Invoke.invokeServiceNow(MyName));
}
}
最後程式運行得到的輸出結果是“Kcvg,你好!”。
注意:在運行調用程式時,Tomcat也必須是開啟的。