jdk8升級jdk11報 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

項目從jdb8升級到了jdk11,打算使用這個長期支持版本,可是一升級就開始報錯。java.lang.ClassNotFoundException: javax.xml.bind.JAXBExceptionjava

查看代碼是一個解析配置文件的地方出現錯誤,導入數據源沒法注入。api

百度查了下,說是jdk9開始,引入模塊的概念,se中再也不包含javaEE的包致使的。這致使解析配置文件失敗spa

推薦的方案最簡單的是降級jdk到8,但這顯然不符合個人需求,還有說手動加入jar的,太麻煩,最後發現只要添加幾個依賴便可。code

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

到這一步基本大功告成,重啓項目就OK了xml

但同事的卻死活不行,檢查他的lib文件,發現沒有包含這些jar,說明沒有引入成功,這是IDEA的毛病了,blog

第一種就是看這裏是否是有 fixed 之類的報錯信息,點擊 fixed 解決io

還有種就是找到這裏class

將沒加入的jar包pull到項目中便可百度

相關文章
相關標籤/搜索