Matecloud解决jdk11登录时报错java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

报错背景

本地代码把jdk升级至11后,出现报错,报错信息如下:
程序异常:org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

问题分析

JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包。而在 java 6/7/8 时关于这个API 都是捆绑在一起的

解决方案

1.降级Jdk至1.8版本

如果可以随意升降级,可以换回1.8,否则看看第2种

2.通过添加依赖解决

        <dependency>
            <groupId>javax.xml.bindgroupId>
            <artifactId>jaxb-apiartifactId>
            <version>2.3.0version>
        dependency>
        <dependency>
            <groupId>com.sun.xml.bindgroupId>
            <artifactId>jaxb-implartifactId>
            <version>2.3.0version>
        dependency>
        <dependency>
            <groupId>com.sun.xml.bindgroupId>
            <artifactId>jaxb-coreartifactId>
            <version>2.3.0version>
        dependency>
        <dependency>
            <groupId>javax.activationgroupId>
            <artifactId>activationartifactId>
            <version>1.1.1version>
        dependency>

后记

附上项目地址:
https://github.com/matevip/matecloud

你可能感兴趣的:(微服务,java,spring,maven,spring,boot,mybatis)