JAX-WS - 基礎示例
一、簡介
WebService是一種跨平臺、跨語言的規範。解決遠端、跨平臺、跨語言應用之間的呼叫。
JAX-WS(Java API for XML-Web Services)規範是一組XML web services的JAVA API。
二、服務端
1、介面
package com.xilen.ws;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* Web服務的介面:SEI(Service EndPoint Interface)
* 介面需要新增註解@WebService
*/
@WebService
public interface UserInfoService {
/**
* 介面方法,提供的具體服務
* 通過註解可以指定訊息元素的名稱為自定義,取代預設的如arg0等
*/
@WebResult(name="checkReturn")
public String check(@WebParam(name="userName")String userName, @WebParam(name="userPass")String userPass);
}
2、實現
package com.xilen.ws;
import javax.jws.WebService;
/**
* Web服務的實現:SIB(Service Implementation Bean)
* 實現需要註解@WebService,並指定實現的介面
*/
@WebService(endpointInterface="com.xilen.ws.UserInfoService", serviceName="UserInfoServiceImplService")
public class UserInfoServiceImpl implements UserInfoService{
@Override
public String check(String userName, String userPass) {
return "Check [ userName:" + userName + "; userPass:" + userPass + " ]";
}
}
3、釋出
package com.xilen.ws;
import javax.xml.ws.Endpoint;
public class WsStart {
public static void main(String[] args) {
String address = "http://127.0.0.1:8888/userinfo";
/**
*通過Endpoint的靜態方法publish()實現釋出
*傳入服務的地址和服務的實現物件
*/
Endpoint.publish(address, new UserInfoServiceImpl());
}
}
4、檢視
當瀏覽器訪問釋出地址得到如下圖時成功釋出
三、客戶端
1、準備
通過wsimport生成WS呼叫的相關檔案,如下:
D:\>wsimport -d D:\JavaWorks\WebServices\JAX-WS_Init_Client\src -keep -verbose http://127.0.0.1:8888/userinfo?wsdl
2、呼叫
package com.xilen;
import com.xilen.ws.UserInfoService;
import com.xilen.ws.UserInfoServiceImplService;
public class WsClient {
public static void main(String[] args) {
/**
* 在生成的Java類中,繼承javax.xml.ws.Service的類可視為一個工廠
* 這個類是的名稱即服務端WS實現中註解的serviceName,同時也是wsdl文件definitions中的name
*/
UserInfoServiceImplService uisis = new UserInfoServiceImplService();
//通過這個工廠的例項獲取服務介面的代理
UserInfoService uis = uisis.getUserInfoServiceImplPort();
//通過這個介面實現遠端呼叫
System.out.println(uis.check("admin", "12345"));
}
}
3、結果
Check [ userName:admin; userPass:12345 ]
四、補充
wsimport引數:
-d dirName : 指定生成的檔案的目錄
-p pkgName : 指定自定義的包名,不指定則預設服務端的包名
-keep : 指定是否生成.java的原始檔
-verbose : 指定是否顯示生成過程的資訊
wsdlUrl : 指定wsdl文件的url
五、下載
http://download.csdn.net/detail/u013379717/7254335
相關文章
- Cxf - 基礎和示例
- XML - Schema之基礎示例XML
- PhantomJS 基礎及示例JS
- js 閉包 基礎 示例 高階JS
- Go基礎系列:雙層channel用法示例Go
- VC++基礎 連結串列的操作示例C++
- JS基礎教程——正規表示式示例(推薦)JS
- Log4J基礎詳解及示例大全
- ios基礎之UITableViewCell的重用(帶示例原創)iOSUIView
- Java-Spring-WebService最基礎的配置示例JavaSpringWeb
- GaussDB SQL基礎語法示例-迴圈語句SQL
- Spring整合JAX-WSSpring
- JAX-WS - Soap詳解
- JAX-WS - Handler詳解
- 三、Go語言基礎:go build命令用法及示例詳解GoUI
- Go語言基礎(04):go doc命令用法及示例詳解Go
- php基礎,php自動載入的實現程式碼示例PHP
- Linux 下 cut 命令的 4 個基礎實用的示例Linux
- BSN-DDC 基礎網路 DDC SDK 詳細設計(八):示例
- MySQL資料庫基礎篇視窗函式示例解析教程RATZMySql資料庫函式
- 在第一段ionic示例的基礎上增加底部導航
- 實戰Memcached快取系統(1)Memcached基礎及示例程式快取
- 【FPGA基礎】Latch基礎FPGA
- 二、Go語言基礎:go install與go fmt命令使用示例詳解Go
- Java基礎-語法基礎Java
- Pandas 基礎 (2) - Dataframe 基礎
- 前端基礎之jQuery基礎前端jQuery
- [今日白學]元件的基礎的基礎的基礎元件
- 【web前端基礎 | JS基礎】物件Web前端JS物件
- scala基礎語法-----Spark基礎Spark
- Java基礎-物件導向基礎Java物件
- 【基礎篇索引】索引基礎(四)索引
- 【基礎篇索引】索引基礎(三)索引
- 【基礎篇索引】索引基礎(二)索引
- 【基礎篇索引】索引基礎(一)索引
- python基礎中的基礎Python
- 基礎
- JavaScript 基礎卷(一):基礎語法JavaScript