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

JAX-WS 部署到獨立 Tomcat 缺少 WSServletContextListener 的解決方案:補全運行時依賴庫

     編輯:程式設計疑難解答

錯誤

ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener

原因

JDK 6/7/8 內置 JAX-WS RI,但 JDK 9+ 模塊化移除(java.xml.ws 模塊需額外添加)。MyEclipse 自帶 JDK 含完整 RI,獨立 Tomcat 使用的 JDK 可能缺失。

解決方案

  1. Maven 依賴(推薦):
    <dependency>
        <groupId>com.sun.xml.ws</groupId>
        <artifactId>jaxws-rt</artifactId>
        <version>2.3.3</version>
    </dependency>
    打包進 WAR WEB-INF/lib。
  2. Tomcat 共享庫:將 jaxws-rt.jar、jaxb-api.jar 等放入 $CATALINA_HOME/lib。
  3. JDK 9+ 模塊:啟動參數 --add-modules java.xml.ws(需 JDK 包含該模塊)。

驗證

啟動 Tomcat,查看日志無 ClassNotFoundException,WSDL 訪問正常。

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