You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jjwt-api生成JWK时遇DefaultDynamicJwkBuilder加载失败问题

解决JJWT生成RSA JWK时的类加载异常问题

问题原因

从异常信息和你提供的类路径可以明确:运行时未将jjwt-impl.jar纳入类路径。尽管你在Maven中设置了runtime scope,但IDE直接运行main方法时,默认不会自动加载runtime scope的依赖——该scope原本是为生产环境打包后的运行场景设计,而非IDE开发调试场景。

解决方案

方案1:临时调整依赖Scope(快速解决)

将jjwt-impl的依赖Scope从runtime改为compile,确保IDE自动将其加入运行类路径:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-impl</artifactId>
    <version>0.12.6</version>
    <!-- 移除runtime scope配置 -->
</dependency>

修改后重新导入Maven依赖,再运行main方法即可。

方案2:配置IDE运行时类路径(推荐长期方案)

以IntelliJ IDEA为例:

  • 打开Run Configuration(右上角运行按钮下拉菜单 → Edit Configurations)
  • 找到Test类的运行配置,切换到Classpath标签页
  • 在Dependencies区域点击+号,选择Library,找到jjwt-impl-0.12.6.jar并添加
  • 保存配置后重新运行

方案3:用Maven Exec插件运行(规避IDE配置问题)

在项目根目录执行以下命令,Maven会自动加载所有runtime依赖:

mvn exec:java -Dexec.mainClass="Test"

额外优化建议

你的代码中存在冗余的字符串转换逻辑:

String jwkJson = new String(new Gson().toJson(privJwk).getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8);

可简化为直接使用Gson返回的字符串:

String jwkJson = new Gson().toJson(privJwk);

无需重复进行编码解码操作。

内容的提问来源于stack exchange,提问作者Abhi V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:55:56