webservice之通過wsdl文件生成客戶端
通過前面我們了解的內容,我們來簡單的編寫一個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編譯的代碼也會出現錯了,你根據代碼提示刪除就好,不影響運行!
最后我們來看一下運行結果:
總結:
當然在工作中我們不是這么簡單的編寫,我覺得還應該去看一下普遍是怎么用的,怎么寫的!