首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Eclipse 生成 WSDL 完整指南:從 Web Service 定義到契約優先開發

     編輯:程式設計疑難解答

WSDL 核心概念

WSDL (Web Services Description Language) 是描述 Web 服務接口的 XML 語言,包含兩大部分:

  • 抽象定義(頂部):<types>、<message>、<portType> — 平台無關,定義「做什麼」。
  • 具體描述(底部):<binding>、<service>、<port> — 綁定具體協議(SOAP/HTTP)、地址,定義「怎麼做」。

Eclipse 中生成 WSDL 兩大模式

模式一:Java 類 → WSDL(契約後置,Code First)

  1. 創建 Dynamic Web Project,勾選「Generate web.xml deployment descriptor」。
  2. 編寫 SEI (Service Endpoint Interface) 與實現類:
    @WebService
    public interface GreetingService {
        String sayHello(String name);
    }
    
    @WebService(endpointInterface = "com.demo.GreetingService")
    public class GreetingServiceImpl implements GreetingService {
        public String sayHello(String name) { return "Hello, " + name; }
    }
    
  3. 右鍵項目 → Web Services → Generate WSDL(需安裝 Eclipse Web Tools Platform)。
  4. 向導中選擇:Bottom up Java bean Web Service,運行時選 Apache Axis2 或 CXF。
  5. 生成文件:WEB-INF/wsdl/GreetingService.wsdl、services.xml 等。

模式二:WSDL → Java 類(契約優先,Contract First)

  1. 準備現有 .wsdl 文件放入項目。
  2. 右鍵 WSDL 文件 → Web Services → Generate Java Bean Skeleton。
  3. 選擇運行時(Axis2/CXF),配置包名、異步調用選項。
  4. 生成:SEI 接口、實現類存根、數據綁定類(JAXB/ADB)。

常用運行時對比

運行時特點適用場景
Apache Axis2成熟、功能全、配置複雜企業級舊系統維護
Apache CXF輕量、Spring 集成好、JAX-RS/JAX-WS 雙支持現代 Spring Boot 項目首選
Metro (JAX-WS RI)標準實現、GlassFish 內置Java EE 兼容性要求高

Spring Boot 時代的最佳實踐

Eclipse 向導屬於舊世代工具鏈,現代項目建議:

  1. Contract First:用 wsimport (JDK 內置) 或 cxf-codegen-plugin (Maven) 從 WSDL 生成代碼。
  2. Code First:Spring Boot + spring-boot-starter-webservices (CXF) 或 spring-boot-starter-web (REST),用 @WebService 註解暴露 SOAP,或直接寫 REST API。
  3. WSDL 自動發布:@EnableWs + Wsdl11Definition Bean,無需手動維護 XML。

快速驗證 WSDL 正確性

# 命令行生成客戶端代碼測試
wsimport -keep -p com.demo.client https://localhost:8080/ws/greeting?wsdl

掌握 WSDL 兩層結構與雙向生成流程,無論維護舊 SOA 還是設計新微服務契約,都能游刃有餘。

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