Web Services 核心概念
Web Services 面向軟件客戶端(而非人),基於 HTTP/HTTPS 傳輸,XML(SOAP)或 JSON 承載數據,WSDL 描述服務契約。JBuilder 2007 集成 Apache Axis 1.0,提供可視化開發、部署、測試工具鏈。
兩大開發模式
Top-Down(契約優先)
- 設計/獲取 WSDL 文件(WSDL 編輯器可視化編輯)。
- 右鍵 WSDL → New → Web Service,選 Top-down。
- 配置服務器(Tomcat)、運行時、Web 項目,勾選發布生成 .ear。
- 工具生成 Skeleton Bean(含 WSDL 定義的所有方法存根)。
- 在 Bean 中填寫具體業務邏輯代碼。
優勢:接口穩定、團隊並行開發、文檔即代碼。推薦全新項目採用。
Bottom-Up(代碼優先)
- 編寫 Java Bean/EJB 實現業務邏輯。
- 右鍵 Bean → New → Web Service,選 Bottom-up。
- 勾選要暴露的方法(可過濾私有/內部方法)。
- 工具自動生成 WSDL、部署描述符、客戶端存根。
優勢:快速暴露現有邏輯、原型驗證。缺點:接口易隨實現變動、耦合度高。
部署與測試
- 生成的代理 JSP:
https://localhost:port/WebProjectClient/sampleBean/WebServiceName/TestClient.jsp,瀏覽器直接調試方法。
- Web Services 瀏覽器:圖形化輸入參數、查看 SOAP 請求/響應 XML。
客戶端生成三步走
- New → Other → Web Services → Web Service Client(或
Web Service Client from URL)。
- 輸入 WSDL URL(本地文件/遠程 HTTP),或瀏覽工作區選擇。
- Finish → 自動生成 Java Bean 代理類 + 測試示例程序。
代理類封裝了 SOAP 組裝、HTTP 調用、異常轉換,業務代碼像調用本地方法一樣調用遠程服務。
實戰提示
- 複雜類型映射:WSDL
complexType ↔ Java Bean,確保 getter/setter 規範。
- 異常處理:Axis 將遠程異常包裝為
RemoteException,客戶端需捕獲。
- 超時設置:
service.setTimeout(millis) 防止調用端無限等待。
- 安全性:生產環境必須配置 WS-Security(簽名/加密)或 HTTPS 互信。
- 版本演進:WSDL 新增可選元素、新操作不破壞舊客戶端;刪除/修改必須發布新版本端點(如
/v2/Service)。
從 JBuilder 走向現代化
JBuilder 2007 早已停止維護。新項目建議:
- 框架:Spring Boot + Apache CXF / Spring Web Services / JAX-WS RI。
- 契約優先:Maven 插件
cxf-codegen-plugin 從 WSDL 生成代碼。
- 契約測試:Pact / Spring Cloud Contract 保證生產者/消費者兼容。
- 文檔:Swagger/OpenAPI 3.0 取代 WSDL(REST 風格更主流)。
工具會過時,但「契約優先、接口穩定、版本兼容」的服務治理思想永不過時。