如何解决 java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter Java 11

and*_*tid 4 java jwt java-11

我有一个 API,它接收 JWT 令牌以进行授权。

一旦它开始使用令牌进行身份验证,它就会抛出此错误: 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 boot 2.6.6。

谢谢您的帮助

小智 7

我通过删除旧的 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'
Run Code Online (Sandbox Code Playgroud)