![](/img/trans.png)
[英]java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter while decoding JWT token with Java 11
[英]How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter Java 11
我有一个 API 接收 JWT 授权令牌。
一旦它开始使用令牌进行身份验证的过程,它就会抛出这个错误: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
我在 Java 11 中读到,他们从 JDK 中删除了 java.xml.bind 库。 我按照答案中的建议添加了这两个依赖项: implementation "jakarta.xml.bind:jakarta.xml.bind-api:3.0.0"
和implementation "org.glassfish.jaxb:jaxb-runtime:3.0.0"
。
还尝试implementation "jakarta.xml.bind:jakarta.xml.bind-api:3.0.0"
和implementation 'com.sun.xml.bind:jaxb-impl:3.0.0'
。
但我仍然遇到同样的错误,我找不到任何其他解决方案。
我使用 Java 11 和 Spring 启动 2.6.6。
谢谢您的帮助
使用这些依赖项的 2.x 版。 在版本 3.x 中,前导前缀javax
被替换为jakarta
。 其他 Java EE / Jakarta EE API 也发生了同样的情况。
我通过删除旧的 jjwt 0.9.1 并添加这些来解决这个问题
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5'
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.