自学内容网 自学内容网

java的JJWT 0.91在jdk21中报错的解决方法

参考了很多其他人的办法,只有这种方式可以解决问题

JSON Web Token(缩写 JWT) 目前最流行、最常见的跨域认证解决方案,前端后端都需要会使用的东西
如果根据黑马的视频,导入了阿里云OSS的相关依赖,自然不会报错,但由于阿里云OSS不是免费使用的,所有那部分内容我没有加入

报错类型

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.example.TliasWebManagementApplicationTests.testGenJwt(TliasWebManagementApplicationTests.java:29)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
... 6 more

在这里插入图片描述

原先会报错的 pom.xml

 <!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>

在前面加上 jaxb-api,即可正常生成令牌

jaxb-api 的依赖被包含在黑马程序员视频中的阿里云OSS依赖中,所以他不会报错,我们会报错

<dependency>
<groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
<!--JWT令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>

在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_57706322/article/details/143677874

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!