真正解決方案:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

今天在使用JDK 12.0 環境下使用Hibernate 時候出現了這個錯誤,錯誤日誌如下:



故障原因:

JAXB API是java EE 的API,因此在java SE 9.0 中不再包含這個 Jar 包。
java 9 中引入了模塊的概念,默認情況下,Java SE中將不再包含java EE 的Jar包
而在 java 6/7 / 8 時關於這個API 都是捆綁在一起的

解決方案一:

降低JDK 版本到 JDK 8

解決方案二:(親測可行)

手動加入這些依賴Jar包

<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>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章