更新時間:2019-10-15 09:52:41 來源:動力節(jié)點 瀏覽17749次
WebService技術(shù),能使得運行在不同機(jī)器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。依據(jù)WebService規(guī)范實施的應(yīng)用之間,無論它們所使用的語言、平臺或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。WebService是自描述、自包含的可用網(wǎng)絡(luò)模塊,可以執(zhí)行具體的業(yè)務(wù)功能。WebService也很容易部署,因為它們基于一些常規(guī)的產(chǎn)業(yè)標(biāo)準(zhǔn)以及已有的一些技術(shù),諸如標(biāo)準(zhǔn)通用標(biāo)記語言下的子集XML、HTTP。WebService減少了應(yīng)用接口的花費。WebService為整個企業(yè)甚至多個組織之間的業(yè)務(wù)流程的集成提供了一個通用機(jī)制
1.在eclipse或myclipse新建一個Web項目,并新建一個class類,用于發(fā)布;
2.編寫供客戶端調(diào)用的方法,即編譯方法代碼;
示例:
importjavax.jws.WebMethod;
importjavax.jws.WebService;
importjavax.xml.ws.Endpoint;
/**
*Title:ServiceHello
*Description:基于jdk1.6以上的javax.jws發(fā)布webservice接口
@WebService-它是一個注解,用在類上指定將此類發(fā)布成一個ws。
Endpoint–此類為端點服務(wù)類,它的方法publish用于將一個已經(jīng)添加了@WebService注解
對象綁定到一個地址的端口上。
*Version:1.0.0
*@authorpanchengming
*/
@WebService
publicclassJwsServiceHello{
/**供客戶端調(diào)用方法該方法是非靜態(tài)的,會被發(fā)布
*@paramname傳入?yún)?shù)
*@returnString返回結(jié)果
**/
publicStringgetValue(Stringname){
return"歡迎你!"+name;
}
/**
*方法上加@WebMentod(exclude=true)后,此方法不被發(fā)布;
*@paramname
*@return
*/
@WebMethod(exclude=true)
publicStringgetHello(Stringname){
return"你好!"+name;
}
/**靜態(tài)方法不會被發(fā)布
*@paramname
*@return
*/
publicstaticStringgetString(Stringname){
return"再見!"+name;
}
//通過EndPoint(端點服務(wù))發(fā)布一個WebService
publicstaticvoidmain(String[]args){
/*參數(shù):1,本地的服務(wù)地址;
3.提供服務(wù)的類;
*/
Endpoint.publish("http://192.168.1.105:8080/Service/ServiceHello",newJwsServiceHello());
System.out.println("發(fā)布成功!");
//發(fā)布成功后在瀏覽器輸入http://192.168.1.105:8080/Service/ServiceHello?wsdl
}
}
4.進(jìn)行編譯運行(注:失敗檢查jdk版本)
5.將所設(shè)地址加上?wsdl到瀏覽器上訪問,如出現(xiàn)XML格式代碼,則發(fā)布成功,反之,則否;(url:http://192.168.1.105:8080/Service/ServiceHello?wsdl)
生成代碼方式一
1.新建一個class類,用于調(diào)用webservice。右鍵src,找到WebServiceClient,并輸入wsdl地址,選擇下載代碼的路徑;(url:http://192.168.1.105:8080/Service/ServiceHello?wsdl)
2.將地址上的文件下載下來(注意和發(fā)布JDK一致);
3.寫調(diào)用方法調(diào)用下載下來的WebService中的java類中的方法;
示例:
importcom.pcm.ws.jws.JwsServiceHello;
importcom.pcm.ws.jws.JwsServiceHelloService;
/**
*
*Title:JwsClientHello
*Description:webService客戶端調(diào)用
*Version:1.0.0
*@authorpanchengming
*/
publicclassJwsClientHello{
publicstaticvoidmain(String[]args){
//調(diào)用webservice
JwsServiceHellohello=newJwsServiceHelloService().getJwsServiceHelloPort();
Stringname=hello.getValue("panchengming");
System.out.println(name);
}
}
生成代碼方式二
1.創(chuàng)建WebServiceProject,命名為TheClient。
2.在dos命令下輸入wsimport-s“src目錄”-p“生成類所在包名”-keep“wsdl發(fā)布地址”
示例:wsimport-sG:\workspace\webService\webService_Project\src-pcom.pcm.ws.jws-keephttp://192.168.1.105:8080/Service/ServiceHello?wsdl
3.成功則返回parsingWSDL…
generatingcode…
compilingcode…
4.刷新項目,生成類;
5,寫調(diào)用方法(同上);
如何發(fā)布一個Web服務(wù):
a,在類上添加@WebService注解(注:此注解是jdk1.6提供的,位于javax.jws.WebService包中)
b,通過EndPoint(端點服務(wù))發(fā)布一個WebService(注:EndPoint是jdk提供的一個專門用于發(fā)布服務(wù)的類,該類的publish方法接收兩個參數(shù),一個是本地的服務(wù)地址,二是提供服務(wù)的類。位于javax.xml.ws.Endpoint包中)
c,注:類上添加注解@WebService,類中所有非靜態(tài)方法都會被發(fā)布;
靜態(tài)方法和final方法不能被發(fā)布;方法上加@WebMentod(exclude=true)后,此方法不被發(fā)布;
以上就是動力節(jié)點java培訓(xùn)機(jī)構(gòu)小編介紹的“Java WebService接口生成和調(diào)用 圖文詳解”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動力節(jié)點java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)閱讀