webservice調用和生成


webservice簡介: 
Web Service技術, 能使得運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數據或集成。依據Web Service規范實施的應用之間, 無論它們所使用的語言、 平台或內部協議是什么, 都可以相互交換數據。Web Service是自描述、 自包含的可用網絡模塊, 可以執行具體的業務功能。Web Service也很容易部署, 因為它們基於一些常規的產業標准以及已有的一些技術,諸如標准通用標記語言下的子集XML、HTTP。Web Service減少了應用接口的花費。Web Service為整個企業甚至多個組織之間的業務流程的集成提供了一個通用機制

 

一、 WebService生成

1.在eclipse或myclipse新建一個Web項目,並新建一個class類,用於發布; 
這里寫圖片描述

2.編寫供客戶端調用的方法,即編譯方法代碼; 
示例:

import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; /** * Title: ServiceHello * Description: 基於jdk1.6以上的javax.jws 發布webservice接口  @WebService - 它是一個注解,用在類上指定將此類發布成一個ws。 Endpoint – 此類為端點服務類,它的方法publish用於將一個已經添加了@WebService注解 對象綁定到一個地址的端口上。 * Version:1.0.0 * @author panchengming */ @WebService public class JwsServiceHello { /** 供客戶端調用方法 該方法是非靜態的,會被發布 * @param name 傳入參數 * @return String 返回結果 * */ public String getValue(String name){ return "歡迎你! "+name; } /** * 方法上加@WebMentod(exclude=true)后,此方法不被發布; * @param name * @return */ @WebMethod(exclude=true) public String getHello(String name){ return "你好! "+name; } /** 靜態方法不會被發布 * @param name * @return */ public static String getString(String name){ return "再見!"+name; } //通過EndPoint(端點服務)發布一個WebService public static void main(String[] args) { /*參數:1,本地的服務地址; 2,提供服務的類; */ Endpoint.publish("http://192.168.1.105:8080/Service/ServiceHello", new JwsServiceHello()); System.out.println("發布成功!"); //發布成功后 在瀏覽器輸入 http://192.168.1.105:8080/Service/ServiceHello?wsdl } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

3.進行編譯運行(注:失敗檢查jdk版本) 
這里寫圖片描述 
4.將所設地址加上?wsdl到瀏覽器上訪問,如出現XML格式代碼,則發布成功,反之,則否;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl
這里寫圖片描述

二、WebService調用方法

生成代碼方式一

1.新建一個class類,用於調用webservice。右鍵src,找到Web Service Client,並輸入wsdl地址,選擇下載代碼的路徑;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl
這里寫圖片描述 
這里寫圖片描述 
這里寫圖片描述 
2.將地址上的文件下載下來(注意和發布JDK一致); 
3.寫調用方法調用下載下來的WebService中的java類中的方法; 
示例:

import com.pcm.ws.jws.JwsServiceHello; import com.pcm.ws.jws.JwsServiceHelloService; /** * * Title: JwsClientHello * Description: webService 客戶端調用 * Version:1.0.0 * @author panchengming */ public class JwsClientHello { public static void main(String[] args) { //調用webservice JwsServiceHello hello=new JwsServiceHelloService().getJwsServiceHelloPort(); String name=hello.getValue("panchengming"); System.out.println(name); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

這里寫圖片描述

生成代碼方式二 
1.創建Web Service Project,命名為TheClient。 
2.在dos命令下輸入 wsimport -s “src目錄” -p “生成類所在包名” -keep “wsdl發布地址” 
示例:wsimport -s G:\workspace\webService\webService_Project\src -p com.pcm.ws.jws -keep http://192.168.1.105:8080/Service/ServiceHello?wsdl 
3.成功則返回 parsing WSDL… 
generating code… 
compiling code… 
4.刷新項目,生成類; 
5,寫調用方法(同上);

三、總結:

如何發布一個Web服務: 
a,在類上添加@WebService注解 
(注:此注解是jdk1.6提供的,位於javax.jws.WebService包中) 
b,通過EndPoint(端點服務)發布一個WebService 
(注:EndPoint是jdk提供的一個專門用於發布服務的類,該類的publish方法接收兩個參數,一個是本地的服務地址,二是提供服務的類。位於 javax.xml.ws.Endpoint包中) 
c,注: 
類上添加注解@WebService,類中所有非靜態方法都會被發布; 
靜態方法和final方法不能被發布; 
方法上加@WebMentod(exclude=true)后,此方法不被發布;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM