前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >集成 Jwt 认证时出现 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

集成 Jwt 认证时出现 java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

原创
作者头像
繁依Fanyi
发布2024-06-20 20:52:47
1450
发布2024-06-20 20:52:47

问题随记

在集成 Jwt 认证时出现以下错误:

代码语言:java
复制
java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]
	at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26) ~[jjwt-0.9.1.jar:0.9.1]
	at io.jsonwebtoken.impl.DefaultJwtBuilder.signWith(DefaultJwtBuilder.java:99) ~[jjwt-0.9.1.jar:0.9.1]
	at cn.techfanyi.fanyi.utils.JwtTokenUtil.generateToken(JwtTokenUtil.java:32) ~[classes/:na]
	……

查询了一下资料,大概是因为 io.jsonwebtoken.Jwts.builder 不支持较高版本的 Java,这可能与Java SE 9及更高版本中javax.xml.bind模块的移除相关(这个模块在早期版本(如Java SE 8)中是默认存在的),其中包括了 DatatypeConverter 类。这导致了许多使用 JAXB 的旧代码在升级到 Java 9 或更高版本时遇到类加载问题。

解决方法

解决方案使用 JDK 的 JAXB 模块:如果你的应用程序依赖于 JAXB,可以考虑以下两种方法来解决这个问题:

  • 在 Maven 或 Gradle 中添加依赖:如果你使用 Maven,则可以添加以下依赖:<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> <!-- 适合你的项目版本 --> </dependency>如果使用 Gradle,可以添加以下依赖:implementation 'javax.xml.bind:jaxb-api:2.3.1' // 适合你的项目版本
  • 手动添加 Java EE 模块:如果使用的是 Java 9 或更新版本,并且不想添加额外的依赖,可以通过添加 --add-modules java.xml.bind 或者在 module-info.java 文件中声明依赖来解决问题。例如:module your.module.name { requires java.xml.bind; // other requires statements }
  • 更新到新的 XML 处理库:另一种选择是将你的项目迁移到使用新的 XML 处理库,如 javax.xml.stream,或者使用更现代的替代方案,如 JSON 格式的数据交换。

生成 token 成功,问题解决。


我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题随记
  • 解决方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档