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

【问题解决】org.springframework.web.util.NestedServletException Handler dispatch failed;

详细异常信息:

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1055)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)

Caused by: 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)

org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
at com.msrl.zhibo.advice.LogAspect.runTime(LogAspect.java:38)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)

org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
… 39 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:587)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
… 75 more

说明:

这个问题通常是由于在项目打包后,某些依赖项未正确包含在打包的结果中导致的,特别是缺少了javax.xml.bind.DatatypeConverter类。这个类在 Java 8 中是由JAXB(Java Architecture for XML Binding) 提供的,但从 Java 9 开始,JAXB已不再默认包含在JDK中。

本人的思路:

因为我的电脑上不仅装了Java 8 ,还装了 Java 17 而且 Java 17 还是默认的 Java 环境,但是项目是 Java 8 的项目,打包后在电脑运行就默认运行在了 Java 17 环境下,从而出现了此类异常。所以把默认的环境改回 Java 8 即可解决此问题。

注意:若直接修改 JAVA_HOME 无效的话,就直接去path变量里添加即可,不要忘记把此条变量移动到顶部,因为哪个靠前就生效哪个。


以下是ChatGPT提供的解决方案:
1、添加JAXB依赖

如果你的项目使用Java 9或更高版本,你需要手动添加JAXB相关的依赖。可以在pom.xml中添加以下依赖来解决这个问题:

<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>org.glassfish.jaxb</groupId> <artifactId>jaxb-runtime</artifactId> <version>2.3.1</version> </dependency>
2、检查打包方式

确保你在打包过程中使用的是spring-boot-maven-plugin或者类似的打包插件,并且相关依赖已经正确包含在最终生成的.jar文件中。

如果你使用spring-boot-maven-plugin,确保你的pom.xml有如下配置:

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.1</version> <!-- 确保版本和 Spring Boot 的版本一致 --> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
3、确保正确的 JDK

确认你在打包和运行项目时使用相同的 JDK 版本。尤其是当项目在 Java 8 上开发并打包,却使用 Java 9 或更高版本运行时,缺少的类可能导致这个问题。

4、模块化项目(Java 9+)

如果你在使用 Java 9 及以上版本,并且项目是模块化的,你可以考虑将JAXB模块手动包含在运行时,使用以下JVM参数:

--add-modules java.xml.bind

在 pom.xml 中配置:

<configuration> <jvmArguments>--add-modules java.xml.bind</jvmArguments> </configuration>
5、总结

这个错误的根本原因是从 Java 9 开始,javax.xml.bind.DatatypeConverter不再默认提供。通过手动添加JAXB依赖或确保正确的打包配置,应该可以解决这个问题。如果你使用的是 Java 8,那么这可能是依赖未被正确打包的问题。

http://www.jsqmd.com/news/480796/

相关文章:

  • Python-flask向家租房 房屋租赁微信小程序t9353
  • 全面打开SEO之门,从零基础到有效提升网站流量的方法
  • 【开题答辩全过程】以 商城后台管理系统1为例,包含答辩的问题和答案
  • Python-flask基于安卓的的酒店管理系统 小程序
  • 昭通艺考培训机构靠谱吗,推荐几家口碑好的 - mypinpai
  • 【开题答辩全过程】以 人才培养方案修订管理系统为例,包含答辩的问题和答案
  • 【群晖NAS攻略】轻松搞定MySQL和phpMyAdmin远程访问无需公网IP
  • Terraform基础命令
  • 回收永辉购物卡,快速变现就这么简单! - 团团收购物卡回收
  • 【带权并查集+贪心+构造】codeforces 1244 G. Running in Pairs
  • phpstudy mysql数据库无法远程连接的解决方法
  • 细聊防爆控制箱实力厂商,南阳华通防爆在天津口碑咋样,选哪家好? - 工业品牌热点
  • PyTorch .pt 文件的内部结构
  • 如果 MySQL 中没有 MVCC,会有什么影响?
  • 分享真空镀膜机性价比高的品牌,适合实验室使用的推荐 - 工业品牌热点
  • 分析2026年辽源靠谱的PE排水管制造厂,哪家口碑好? - 工业品网
  • 2026年企业法律顾问推荐,性价比高的律所优势解读 - 工业品网
  • 数据库从入门到上手:一篇搞定SQL核心操作
  • 2026年天河区新能源二手车排名,新能源二手车找正合新能源 - 工业推荐榜
  • 探讨2026年实力强的钢丝网骨架管正规厂家,如何选择靠谱品牌 - 工业设备
  • 2026年真空镀膜机口碑好的品牌推荐,让你选购不迷茫 - 工业设备
  • 如何将 Spring Statemachine 作为一个轻量级工作流引擎来使用?
  • 细聊平舆县好用的认证驾校培训,平舆驾校怎么选择? - myqiye
  • 佛山购新能源二手车费用咋算,正合新能源性价比高不高? - myqiye
  • 第7篇:基于传递函数的PI控制器设计
  • 【数据库】MySQL的安装与卸载
  • 让验证码30秒内只能发送一个
  • 全国钻探机优质厂家有哪些,南地钻探好用吗 - mypinpai
  • python: workboody初养龙虾微信纯文字自动回复
  • 北京/上海/深圳/杭州/南京/无锡高端腕表维修全攻略,多品牌故障排查+养护技巧+正规门店汇总 - 时光修表匠