JAVA項目中發佈WebService服務——簡單實例

1,在Java項目中發佈一個WebService服務:

如何發佈?

——JDK1.6JAX-WS規範定義瞭如何發佈一個WebService服務;

(1)jdk1.6.0_21以後的版本發佈;

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

        @WebService——此註解用在類上指定將此類發佈成一個WebService

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

 

2,例子:

(1)發佈WebService服務


HelloWebService.java:

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;  
  2. importjavax.jws.WebMethod;  
  3. importjavax.jws.WebService;  
  4. importjavax.xml.ws.Endpoint;  
  5. /** 
  6.  *  @WebService - 它是一個註解,用在類上指定將此類發佈成一個ws. 
  7.     Endpoint – 此類爲端點服務類,它的方法publish用於將一個已經添加了@WebService註解對象綁定到一個地址的端口上。 
  8.   
  9.  * @author xuemin 
  10.  * 
  11.  */  
  12. @WebService  
  13. public classHelloWebService {  
  14.    
  15. publicString HelloWord(String name){  
  16. return"Hello: "+name;  
  17. }  
  18.    
  19. /** 
  20.  *添加exclude=true後,HelloWord2()方法不會被髮布 
  21.  * @param name 
  22.  * @return 
  23.  */  
  24. @WebMethod(exclude=true)  
  25. publicString HelloWord2(String name){  
  26. return"Hello: "+name;  
  27. }  
  28. publicstatic void main(String[] args) {  
  29. /** 
  30.  *參數1:服務的發佈地址 
  31.  *參數2:服務的實現者 
  32.  */  
  33. Endpoint.publish("http://192.168.24.138:456/helloWord",new HelloWebService());  
  34.    
  35. }  
  36.    
  37. }</span>  

注:

@WebService 它是一個註解,用在類上指定將此類發佈成一個ws.

    Endpoint –此類爲端點服務類,它的方法publish用於將一個已經添加了@WebService註解對象綁定到一個地址的端口上。

 

運行以上程序進行發佈。

 

(2)查看wsdl

地址:http://192.168.24.138:456/helloWord?wsdl

只要在客戶端瀏覽器能看到此WSDL文檔,說明服務發佈成功


以上服務發佈成功;

總結:

如何發佈一個Web服務:

a,在類上添加@WebService註解

(注:此註解是jdk1.6提供的,位於javax.jws.WebService包中)

b,通過EndPoint(端點服務)發佈一個WebService

(注:EndPointjdk提供的一個專門用於發佈服務的類,該類的publish方法接收兩個參數,一個是本地的服務地址,二是提供服務的類。位於 javax.xml.ws.Endpoint包中)

c,注:

類上添加註解@WebService,類中所有非靜態方法都會被髮布;

靜態方法和final方法不能被髮布;

方法上加@WebMentod(exclude=true)後,此方法不被髮布;

(3)客戶端訪問發佈的服務

根據WSDL文檔來在客戶端編寫代碼,訪問發佈的服務;

但是,WSDL文檔看不懂怎麼辦?代碼該如何編寫?

——你看不懂,JDK看得懂,wsimportJDK自帶的,可以根據WSDL文檔生成客戶端調用代碼的工具。無論服務器端WebService使用什麼語言編寫的,豆漿在客戶端生成Java代碼。所以服務器用什麼語言編寫的並不重要。

wsimport.exe命令參數熟知:

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

    -s:生成Java文件

   -p:自定義包結構

 

解析地址生成源碼到E盤:


 

執行以上命令後,即可在E盤下生成如下包及類


 

注:還可以自定義包結構:

自定義包結構的命令:


 


 

將生成的包及.java文件複製到客戶端:如下圖


 

創建訪問服務的類:MyClient.java:


 

MyClient.java:

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;  
  2.    
  3. public classMyClient {  
  4.    
  5.   publicstatic void main(String[] args) {  
  6.      HelloWebServiceServicehwss = new HelloWebServiceService();  
  7.    
  8.      HelloWebServicehws = hwss.getHelloWebServicePort();  
  9.    
  10.      Stringresult=hws.helloWord("hanxuemin");  
  11.      System.out.println(result);  
  12.   }  
  13.    
  14. }</span>  

 

(4)運行結果:



總結:

通過此篇博客,應該掌握到:如何發佈一個Java Web服務;如何在客戶端訪問發佈的Web服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章