我有一个接收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。
多谢帮忙
我通过删除旧的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也是如此。