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

2021-03-12 09:30

阅读:471

标签:vat   dad   环境   lang   map   模块   sde   erb   ade   

环境如下:  JDK11,IDEA2020.3,springboot 2.4.5

错误如下:在实行jwt生成token的时候爆出

Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
    at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26)
    at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:106)
    at com.jouyo.commonutils.JwtUtils.getJwtToken(JwtUtils.java:37)
    at com.jouyo.educenter.service.impl.UcenterMemberServiceImpl.login(UcenterMemberServiceImpl.java:59)
    at com.jouyo.educenter.service.impl.UcenterMemberServiceImpl$$FastClassBySpringCGLIB$$e17e0e6e.invoke()
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)
    at com.jouyo.educenter.service.impl.UcenterMemberServiceImpl$$EnhancerBySpringCGLIB$$6aba871b.login()
    at com.jouyo.educenter.controller.UcenterMemberController.loginUser(UcenterMemberController.java:39)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
    ... 39 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 59 more

故障原因:

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

解决问题1:

降低JDK 版本到 JDK 8

解决问题2:手动加入这些依赖Jar包

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>

 

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

标签:vat   dad   环境   lang   map   模块   sde   erb   ade   

原文地址:https://www.cnblogs.com/lzj-/p/14088231.html


评论


亲,登录后才可以留言!