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:99)
at com.ruoyi.framework.web.service.TokenService.createToken(TokenService.java:169)
at com.ruoyi.framework.web.service.TokenService.createToken(TokenService.java:111)
at com.ruoyi.framework.web.service.SysLoginService.login(SysLoginService.java:86)
at com.ruoyi.web.controller.system.SysLoginController.login(SysLoginController.java:53)
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)
... 90 common frames omitted
原因是java9以后不再包含这个class。换回jdk1.8就好了
博客讨论了在Java 9及以上版本中遇到的NoClassDefFoundError,具体涉及javax.xml.bind.DatatypeConverter类。此问题源于Java 9移除了该类,导致jwt库在签名过程中出错。解决方案是回退到Java 8或者寻找替代的JWT签名方法。文章还提及了错误处理和系统登录服务的相关代码调用栈。
6417

被折叠的 条评论
为什么被折叠?



