WebService 本質:服務端發布接口,客戶端通過 WSDL 文件生成調用代碼,實現跨語言、跨平台的遠程調用。通信協議基於 HTTP + SOAP(XML 格式)。
https://localhost:8080/項目名/ServicePort 驗證ClassNotFoundException 時,將缺失 Jar 放入 WEB-INF/lib 目錄?wsdl 結尾,如 https://localhost:8080/WS/HelloService?wsdl| 問題現象 | 根因 | 解決方案 |
|---|---|---|
部署報錯 NoClassDefFoundError | 缺少 Axis/Xerces 等依賴 Jar | 全量導入相關 Jar 到 WEB-INF/lib,或配置 Maven 依賴 |
| 客戶端生成失敗 | WSDL URL 未加 ?wsdl | 強制添加 ?wsdl 後綴 |
| 調用超時/連接拒絕 | 服務端未啟動/端口被佔用/防火牆 | 檢查 Tomcat 狀態、端口、防火牆規則 |
| 複雜類型傳遞異常 | 自定義對象未正確序列化 | 確保實體類實現 Serializable,提供無參構造器 |
MyEclipse 內置 WebService 工具屬於舊時代產物,現代項目建議:
遺留維護提示:若必須維護老舊 Axis/WebService 項目,請鎖定 JDK 1.8 + Tomcat 7/8 環境,高版本 JDK 移除了內置 JAX-WS 模塊需額外引入。