提问者:小点点

如何解决java. lang.NoClassDefFoundError:javax/xml/bind/DatatypeConverterJava11


我有一个接收JWT授权令牌的API。

一旦它开始使用令牌进行身份验证的过程,它就会抛出此错误:处理程序调度失败;嵌套异常是java. lang.NoClassDefFoundError:javax/xml/bind/DatatypeConverter

我读到在Java11中,他们从JDK中删除了java. xml.bind库。我按照答案中的建议添加了这两个依赖项:实现"jakarta.xml.bind:jakarta.xml.bind-api:3.0.0"实现"org.glassfish.jaxb:jaxb-runtime:3.0.0"

还尝试了实现"jakarta. xml.bind:jakarta.xml.bind-api:3.0.0"实现'com.sun.xml.bind:jaxb-impl:3.0.0'

但是我仍然得到同样的错误,我找不到任何其他解决方案。

我使用Java11和Spring boot 2.6.6。

多谢帮忙


共2个答案

匿名用户

我通过删除旧的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'

匿名用户

使用这些依赖项的版本2. x。在版本3.x中,前缀javax被替换为jakarta。其他JavaEE/JakartaEEAPI也是如此。