当前位置: 首页 > news >正文

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

今天在朋友机子上运行代码,在生成token的时候,遇到了这样一个问题:

Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 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 com.zs.base.util.framework.JwtUtil.createToken(JwtUtil.java:48) ~[classes/:na]

这个问题是因为 javax.xml.bind.DatatypeConverter 在 Java 9 及更高版本中被移除了。当前使用的 jjwt-0.9.1 版本依赖于这个类进行 Base64 编码和解码,但在 Java 9 及之后的版本中,这个类不再存在。我本机用的是8,朋友电脑用的是17。所以会有这个问题。

有几种解决方法:

1. 添加 javax.xml.bind 依赖

你用的是Java 9 或更高版本,可以手动添加 javax.xml.bind 依赖来解决这个问题。你可以在 pom.xml 中添加以下依赖(适用于 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'

2. 升级 JJWT 版本(推荐)

考虑升级 JJWT 到一个较新的版本,JJWT 目前已经支持 Java 9+,并且新的版本不会依赖 javax.xml.bind.DatatypeConverter。你可以在 pom.xml 中将 jjwt 的版本升级到较新的版本(例如 0.11.5 或更高)。

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.11.5</version>
</dependency>

3. 使用替代库

如果你不想使用 javax.xml.bind,可以考虑使用其他 Base64 编码解码库,如 Apache Commons Codec,来替换 JJWT 中的 Base64 解码功能。你需要自定义 JwtBuilder 的签名方法。

相关文章:

java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

今天在朋友机子上运行代码&#xff0c;在生成token的时候&#xff0c;遇到了这样一个问题&#xff1a; Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at io.jsonwebtoken.impl.Base64Codec.decode(Base64Codec.java:26) ~[jjwt-0.9.1.jar:0.…...

双因素身份验证技术在NPI区域邮件安全管控上的解决思路

在制造业中&#xff0c;NPI&#xff08;New Product Introduction&#xff0c;新产品导入&#xff09;区域是指专门负责新产品从概念到市场推出全过程的部门或团队。NPI 的目标是确保新产品能够高效、高质量地投入生产&#xff0c;并顺利满足市场需求。在支撑企业持续创新和竞争…...

java后端对接飞书登陆

java后端对接飞书登陆 项目要求对接第三方登陆&#xff0c;飞书登陆&#xff0c;次笔记仅针对java后端&#xff0c;在看本笔记前&#xff0c;默认已在飞书开发方已建立了应用&#xff0c;并获取到了appid和appsecret。后端要做的其实很简单&#xff0c;基本都是前端做的&…...

记录一次Android Studio的下载、安装、配置

目录 一、下载和安装 Android Studio 1、搜索下载Android studio ​2、下载成功后点击安装包进行安装&#xff1a; 3、这里不用打勾&#xff0c;直接点击安装 &#xff1a; 4、完成安装&#xff1a; 5、这里点击Cancel就可以了 6、接下来 7、点击自定义安装&#xff1a…...

直流无刷电机控制(FOC):电流模式

目录 概述 1 系统框架结构 1.1 硬件模块介绍 1.2 硬件实物图 1.3 引脚接口定义 2 代码实现 2.1 软件架构 2.2 电流检测函数 3 电流环功能实现 3.1 代码实现 3.2 测试代码实现 4 测试 概述 本文主要介绍基于DengFOC的库函数&#xff0c;实现直流无刷电机控制&#x…...

73.矩阵置零 python

矩阵置零 题目题目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a; 题解思路分析Python 实现代码代码解释提交结果 题目 题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例…...

垃圾收集算法

分代收集理论 分代收集理论&#xff0c;建立在两个分代假说之上。 弱分代假说&#xff1a;绝大多数对象都是朝圣夕灭的。 强分代假说&#xff1a;熬过越多次垃圾收集的过程的对象就越难以消亡。 这两个分代假说奠定了垃圾收集器的一致设计原则&#xff1a;收集器应该将Java…...

SQL-leetcode-262. 行程和用户

262. 行程和用户 表&#xff1a;Trips --------------------- | Column Name | Type | --------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | --------------------- id 是这张表的主键…...

太原理工大学软件设计与体系结构 --javaEE

这个是简答题的内容 选择题的一些老师会给你们题库&#xff0c;一些注意的点我会做出文档在这个网址 项目目录预览 - TYUT复习资料:复习资料 - GitCode 希望大家可以给我一些打赏 什么是Spring的IOC和DI IOC 是一种设计思想&#xff0c;它将对象的创建和对象之间的依赖关系…...

Leetcode 139. 单词拆分 动态规划

原题链接&#xff1a;Leetcode 139. 单词拆分 递归&#xff0c;超时 class Solution { public:bool isfind(string s,map<string,int>& mp){for(auto x:mp){string wordx.first;if(sword) return true;int nword.size();if(n>s.size()) continue;string s1s.subs…...

python异常机制

异常是什么&#xff1f; 软件程序在运行过程中&#xff0c;非常可能遇到刚刚提到的这些问题&#xff0c;我们称之为异常&#xff0c;英文是Exception&#xff0c;意思是例外。遇到这些例外情况&#xff0c;或者交异常&#xff0c;我们怎么让写的程序做出合理的处理&#xff0c…...

运行爬虫时可能遇到哪些常见问题?

在运行Python爬虫时&#xff0c;可能会遇到以下一些常见问题及相应的解决方法&#xff1a; 1. 请求频繁被封 IP 问题描述&#xff1a;爬虫请求频繁时&#xff0c;网站可能会识别到异常行为并封禁 IP&#xff0c;从而导致后续请求失败。解决方法&#xff1a; 使用代理&#xf…...

BGP与CN2的区别 详解两者在网络传输中的应用与优势

在现代互联网环境中&#xff0c;选择合适的网络传输协议和解决方案对于企业的业务运行至关重要。BGP&#xff08;Border Gateway Protocol&#xff09;和CN2&#xff08;China Telecom Next Carrier Network&#xff09;是两种广泛应用的网络技术&#xff0c;但它们的设计理念、…...

Spring 项目 基于 Tomcat容器进行部署

文章目录 一、前置知识二、项目部署1. 将写好的 Spring 项目先打包成 war 包2. 查看项目工件&#xff08;Artifact&#xff09;是否存在3. 配置 Tomcat3.1 添加一个本地 Tomcat 容器3.2 将项目部署到 Tomcat 4. 运行项目 尽管市场上许多新项目都已经转向 Spring Boot&#xff0…...

“负载均衡”出站的功能、原理与场景案例

在企业日常网络中&#xff0c;外网访问速度不稳定是一个常见问题。特别是多条外网线路并行时&#xff0c;不合理的流量分配会导致资源浪费甚至网络拥堵。而出站负载均衡&#xff0c;正是解决这一问题的关键技术。 作为一种先进的网络流量管理技术&#xff0c;其核心是优化企业内…...

02-51单片机数码管与矩阵键盘

一、数码管模块 1.数码管介绍 如图所示为一个数码管的结构图&#xff1a; 说明&#xff1a; 数码管上下各有五个引脚&#xff0c;其中上下中间的两个引脚是联通的&#xff0c;一般为数码管的公共端&#xff0c;分为共阴极或共阳极&#xff1b;其它八个引脚分别对应八个二极管…...

不同方式获取音频时长 - python 实现

DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(free)” -------------------------------------------------------------…...

【python A* pygame 格式化 自定义起点、终点、障碍】

- pip install pygame test.py(chatgpt版本) 空格键&#xff1a;运行 A* 算法。CtrlC 键&#xff1a;清空路径。CtrlS 键&#xff1a;保存当前地图到 map.json 文件。CtrlL 键&#xff1a;从 map.json 文件加载地图。 import pygame import json from queue import PriorityQ…...

12_Redis发布订阅

1.Redis发布订阅介绍 1.1 基本概念 Redis的发布订阅(Pub/Sub)是一种消息通信模式,允许消息的发布者(Publisher)将消息发布到一个或多个频道(Channel),订阅者(Subscriber)通过订阅这些频道来接收消息。 发布者(Publisher):发送消息的一方,使用PUBLISH命令将消息…...

归并排序:数据排序的高效之道

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

麒麟系统根目录权限误改777?3步快速修复(附完整命令)

麒麟系统根目录权限误改777&#xff1f;3步快速修复&#xff08;附完整命令&#xff09; 当你在深夜维护麒麟系统时&#xff0c;一个不经意的chmod -R 777 /命令可能让整个系统陷入权限混乱。作为经历过这种噩梦的运维老兵&#xff0c;我总结出一套最快能在15分钟内恢复系统权限…...

SMUDebugTool技术突破:硬件级调试能力解决工程师的系统优化痛点

SMUDebugTool技术突破&#xff1a;硬件级调试能力解决工程师的系统优化痛点 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: h…...

YimMenu:5个步骤掌握GTA V终极安全防护与游戏增强工具

YimMenu&#xff1a;5个步骤掌握GTA V终极安全防护与游戏增强工具 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimM…...

Pi0 VLA模型快速上手:三视角图像上传+中文指令生成6自由度动作

Pi0 VLA模型快速上手&#xff1a;三视角图像上传中文指令生成6自由度动作 想象一下&#xff0c;你面前有一个机器人&#xff0c;你只需要给它看三张不同角度的照片&#xff0c;然后用中文告诉它“把那个红色的方块拿过来”&#xff0c;它就能自己计算出每个关节该怎么动&#…...

3步突破平台壁垒:跨平台资源工具的效率革命

3步突破平台壁垒&#xff1a;跨平台资源工具的效率革命 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字化内容爆炸的时…...

从LAS/LAZ点云数据到智能分析:处理、可视化与目标检测实战

1. 初识LAS/LAZ点云数据&#xff1a;从文件结构到实战解析 第一次接触激光雷达点云数据时&#xff0c;我被那些密密麻麻的坐标点震撼到了。想象一下&#xff0c;无人机或激光雷达设备扫描一片区域后&#xff0c;会生成包含数百万甚至上亿个空间点的数据集&#xff0c;每个点都精…...

SecGPT-14B模型量化部署:为OpenClaw节省50%显存占用

SecGPT-14B模型量化部署&#xff1a;为OpenClaw节省50%显存占用 1. 为什么需要量化SecGPT-14B 当我第一次尝试在本地部署SecGPT-14B模型来驱动OpenClaw时&#xff0c;显存不足的问题立刻给了我当头一棒。我的RTX 3090显卡24GB显存&#xff0c;在加载完整模型后几乎被占满&…...

s2-pro语音后处理集成:合成结果自动降噪+响度标准化Pipeline教程

s2-pro语音后处理集成&#xff1a;合成结果自动降噪响度标准化Pipeline教程 1. 引言与背景 s2-pro作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;已经为众多开发者提供了高质量的文本转语音服务。但在实际应用中&#xff0c;我们常常会遇到两个关键问题&#xff1a…...

BERTopic实战指南:三小时掌握高效主题建模解决方案

BERTopic实战指南&#xff1a;三小时掌握高效主题建模解决方案 【免费下载链接】BERTopic Leveraging BERT and c-TF-IDF to create easily interpretable topics. 项目地址: https://gitcode.com/gh_mirrors/be/BERTopic BERTopic是一个基于BERT和c-TF-IDF的现代主题建…...

墨语灵犀33语种翻译准确率实测:专业领域术语覆盖能力报告

墨语灵犀33语种翻译准确率实测&#xff1a;专业领域术语覆盖能力报告 1. 引言&#xff1a;当古典美学遇见现代翻译技术 在全球化交流日益频繁的今天&#xff0c;语言翻译工具已经成为我们工作学习中不可或缺的助手。然而&#xff0c;大多数翻译工具都停留在功能实用层面&…...