1. 程式人生 > 其它 >解決異常 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

解決異常 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

解決異常 java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException


問題現象

用Tomcat啟動Web工程的時候,catalina.out 日誌檔案中報錯如下:

問題原因

伺服器上的Java 的JDK版本是 11.0.4,版本過高。

JAXB API是java EE 的API,因此在Java SE 9.0 中不再包含這個 Jar 包。
Java 9 中引入了模組的概念,預設情況下,Java SE中將不再包含java EE 的Jar包。

解決方案

方案1(推薦)

降低JDK的版本為 1.8

方案2

在pom.xml中新增如下依賴:

dependencies>
    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <
artifactId>jaxb-impl</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0</version> </dependency
> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> </dependencies>