首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JAX-WS 入門實戰:從 Web Service 創建到多類型客戶端調用全流程

     編輯:Java 相關知識

一、JAX-WS 核心定位

  • JSR 224:Java EE 5 核心組件,繼承 JAX-RPC 1.1
  • 核心優勢:註解驅動簡化開發、JAXB 2.0 數據綁定、支持 SOAP 1.1/1.2、HTTP 綁定、減少運行時 JAR 體積
  • 部署容器:Web 容器 或 EJB 容器

二、開發環境準備

三、創建 Web Service 完整步驟

1. 專案創建

  • Web 容器部署:File → New Project → Web → Web Application
  • EJB 容器部署:Enterprise → EJB Module
  • 專案名:CalculatorWSApplication
  • GlassFish:Java EE Version = Java EE 5;Tomcat:取消 Set Source Level to 1.4

2. Web Service 類創建

  • 右鍵專案 → New → Web Service
  • 名稱:CalculatorWS,包:org.me.calculator
  • IDE 生成可視化設計器與骨架代碼

3. 添加業務操作

  • 設計器點擊 Add Operation
  • 名稱:add,返回類型:int
  • 參數:int i、int j
  • 生成代碼框架:
@WebMethod
public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
    // TODO implement
}
  • 實現邏輯:int k = i + j; return k;

四、部署與測試

1. 運行專案

  • 右鍵專案 → Run:啟動服務器、編譯部署、打開瀏覽器

2. 測試頁面差異

軟件版本要求備註
NetBeans IDE6.0 Web & Java EE內建可視化設計器
JDK5.0 或 6.0JAX-WS 需 JDK 5+ 註解支持
應用服務器GlassFish V2 / TomcatNetBeans 安裝時可選安裝
容器測試能力訪問路徑
GlassFish完整測試:輸入參數、調用、查看響應/CalculatorWSService?Tester
Tomcat僅顯示 WSDL、Endpoint 信息,無法輸入參數測試/CalculatorWS?Tester
EJB Module無瀏覽器測試頁面需編寫客戶端測試

設計器界面

Add Operation 對話框

設計器顯示操作

生成源碼

GlassFish 測試頁面輸入

GlassFish 測試結果

Tomcat 測試頁面

五、三類客戶端開發實戰

客戶端 1:Java SE 應用中的 Java 類

  1. File → New Project → General → Java Application,名稱 CalculatorWS_Client_Application
  2. 右鍵專案 → New → Web Service Client → 瀏覽選擇部署的 WSDL
  3. 包名:org.me.calculator.client
  4. 雙擊 Main.java,刪除 TODO,拖拽 add 節點到 main 方法
  5. 生成代碼:
public static void main(String[] args) {
    try {
        CalculatorWSService service = new CalculatorWSService();
        CalculatorWS port = service.getCalculatorWSPort();
        int i = 3, j = 4;  // 修改測試值
        int result = port.add(i, j);
        System.out.println("Result = " + result);
    } catch (Exception ex) { ex.printStackTrace(); }
}
  1. 運行輸出:Result = 7

客戶端 2:Web 應用中的 Servlet

  1. 創建 Web Application:CalculatorWSServletClient
  2. 添加 Web Service Client(同步 WSDL)
  3. 創建 Servlet:ClientServlet,包 org.me.calculator.client
  4. 專案屬性 → Run → Relative URL: /ClientServlet
  5. 在 processRequest 中拖拽 add 操作,修改參數 i=3, j=4
  6. 運行:瀏覽器顯示 Result = 7

Web Service Client 向導

專案結構

Servlet 運行結果

客戶端 3:Web 應用中的 JSP 頁面

  1. 創建 Web Application:CalculatorWSJSPClient
  2. 添加 Web Service Client
  3. 編輯 index.jsp,拖拽 add 操作到 <h1> 下方
  4. 修改參數 i=3, j=4
  5. 運行:頁面顯示計算結果
<%
    try {
        CalculatorWSService service = new CalculatorWSService();
        CalculatorWS port = service.getCalculatorWSPort();
        int i = 3, j = 4;
        int result = port.add(i, j);
        out.println("Result = " + result);
    } catch (Exception ex) { /* handle */ }
%>

JSP 客戶端向導

JSP 專案結構

JSP 運行結果

六、進階學習路徑

  • 高級客戶端編程:異步調用、Handler 鏈、MTOM 附件、WS-Security
  • 契約優先開發:從 WSDL/XSD 生成服務端骨架 (wsimport -wsdl)
  • RESTful 替代:JAX-RS (JSR-311) 更輕量,適合非 SOAP 場景
  • 微服務遷移:Spring Boot + CXF/JAX-WS 或 gRPC 替代傳統 SOAP

七、總結

JAX-WS 以註解驅動、可視化工具、標準化 API大幅降低 SOAP Web Service 開發門檻。掌握 Web Service 創建 → 部署測試 → 多類型客戶端生成調用 完整流程,是 Java EE 開發者的必備技能。雖然 REST/gRPC 成為新寵,但在企業級集成、金融電信等強契約場景,JAX-WS 仍具不可替代價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved