使用Java調(diào)用C# Web Service方法
本文編碼環(huán)境:Eclipse SDK 3.2.2,Tomcat6,XFire-1.2.6。這里我用了個(gè)插件,需要的朋友自己去看,這個(gè)插件的使用你會(huì)發(fā)現(xiàn)JAVA調(diào)用幾乎和C#的VS一樣簡(jiǎn)單了。
使用插件來進(jìn)行Java調(diào)用C# Web Service。
首先新建一個(gè)Java項(xiàng)目XFireProject,然后依次選擇菜單File->New->Other ,選擇XFire文件夾下的Code generation from WSDL document,打開代碼生成向?qū)?/P>
假設(shè)你要調(diào)用的webservice的名字是HelloWorld,這個(gè)有一個(gè)WebMethod叫SayHey(string name).那你找一下自動(dòng)生產(chǎn)的那些類,里面應(yīng)該有個(gè)叫HelloWorldClient的.下面的代碼演示了如何使用:
- HelloWorldClient serviceClient = new HelloWorldClient();
- HelloWorldSoap soap= serviceClient.getHelloWorldSoap();
- String result=soap.SayHey("notus");
總的來說,就是xfire會(huì)用你提供的wsdl地址生成類,而和vs不同的是,你需要兩步才能調(diào)用到你的webmethod.
如果你安裝上面的步驟一步一步來了,那很好,***你注定沒有辦法運(yùn)行成功-_- 因?yàn)?因?yàn)檫@個(gè)畢竟不是真的vs,在運(yùn)行前,你需要做一個(gè)設(shè)置.
從你的項(xiàng)目的右鍵菜單里調(diào)出Properties配置窗口,選中左面一欄中的XFire項(xiàng),右面會(huì)列出所有與XFire運(yùn)行有關(guān)的類庫,選中如圖所示的類庫,這樣就萬事大吉了。
WSDL的地址欄填入http://localhost:8080/WSProject/services/HelloService?wsdl,Output directory欄中點(diǎn)瀏覽按鈕,選擇我們剛才新建的項(xiàng)目XFireProject,這兩項(xiàng)是必填的??蛇x項(xiàng)中,package一欄可以選已經(jīng)存在的包名,如果不填這一項(xiàng),代碼生成器會(huì)在wsdl目標(biāo)命名空間的基礎(chǔ)上創(chuàng)建一個(gè)。
完成后,可以看到項(xiàng)目中多了XFire類庫,還有package下面的生成的一些類。此時(shí)要保證IDE的Tomcat服務(wù)器是打開的。
此時(shí),在Java調(diào)用C# web Service服務(wù)之前,還有一個(gè)重要的步驟,從XFireProject項(xiàng)目的右鍵菜單里調(diào)出Properties配置窗口,選中左面一欄中的XFire項(xiàng),右面會(huì)列出所有與XFire運(yùn)行有關(guān)的類庫,按圖三中所示的,選中一些類庫,這些類庫在調(diào)用本服務(wù)時(shí)是必須的。
所有的配置都已經(jīng)完成,***就是編寫代碼完成調(diào)用。代碼如下:
- package wsClient;
- import hao.HelloServiceClient;
- import hao.HelloServicePortType;
- public class Invoke {
- /** *//**
- * 這個(gè)方法調(diào)用web服務(wù)并返回服務(wù)執(zhí)行的結(jié)果
- *架構(gòu)師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));
- }
- }
***程序運(yùn)行得到的輸出結(jié)果是“Kcvg,你好!”。這樣我們就完成Java調(diào)用C# Web Service的過程。
注意:在運(yùn)行調(diào)用程序時(shí),Tomcat也必須是打開的。
【編輯推薦】