webservice之通過wsdl文件生成客戶端

jopen 8年前發布 | 10K 次閱讀 WEB服務/RPC/SOA

通過前面我們了解的內容,我們來簡單的編寫一個webservice的實例

環境:eclipse+jdk1.6

 

那么,我們如何用java發布一個webservice服務呢?

1)用jdk1.6以后的版本發布;

(2)與Web服務相關的類,都位于Javax.jws.*包中

        @WebService——此注解用在類上指定將此類發布成一個WebService;

        EndPoint——此類為端點服務類,其中publish()方法用于將一個已經添加了@WebService注解對象綁定到一個地址的端口上,用于發布

例子:

1.發布webservice服務

項目結構(javaproject):

HelloSir.java:

好了上面的代碼基本上就編寫完成了,原諒我直接放圖片,因為我在第一次寫這個例子的時候中間出現過幾次錯誤,我怕不標清楚會打噴嚏

點擊運行后,我們就可以查看我們生成的wsdl文件了

好了,生成的wsdl文件,如果有看不懂的,可以根據前面的內容來對照著看一下!這樣有便于記憶和理解!

既然服務已經發布了,wsdl文件也有了,我們就根據wsdl文件來生成客戶端來調用一下我們發布的服務

我們根據jdk自帶的wsimport命令來生成客戶端的代碼

wsimport.exe命令參數熟知:

    -d:生成class文件。默認參數。

    -s:生成Java文件

    -p:自定義包結構

用這個命令后生成的代碼如下:

將他們黏貼復制到我們先建的工程下(javaproject)下:

然后編寫我們的調用代碼MyClient:

package www.yq.com;
/** 
 * @Project     WebServiceClient 
 * @File        MyClient.java 
 * @Package     www.yq.com 
 * @Date        2016年1月14日 上午11:02:14 
 * @Author      
 * @email       
 */
public class MyClient {
    public static void main(String[] args) {
        HelloSirService hss = new HelloSirService();
        HelloSir hs = hss.getHelloSirPort();
        String result = hs.sayHello("大波");
        System.out.println(result);
    }

}

這完了以后基本就大功告成了,當然你在用客戶端調用發布的服務時,服務不能停止,如果停止會報連接錯誤!

當然jdk編譯的代碼也會出現錯了,你根據代碼提示刪除就好,不影響運行!

最后我們來看一下運行結果:

總結:

當然在工作中我們不是這么簡單的編寫,我覺得還應該去看一下普遍是怎么用的,怎么寫的!


來自: http://my.oschina.net/u/2606929/blog/602259

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!