天天看点

运行时报:nested exception is java.lang.NoClassDefFoundError

接口访问时,错误提示全部内容是:

运行时报:nested exception is java.lang.NoClassDefFoundError

   Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter] with root cause。

产生的原因:

我本地的JDK是直接在网上下载的最新的,jdk-17,本版过高导致的报错异常。根据其他文章所说,JDK8之后做了巨大改变,JAXB API是java EE 的API,JDK9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包,,因此在JDK中不再包含这个Jar 包,而在 java 6/7/8 时关于这个API 都是捆绑在一起的。

解决办法:

在pom.xml中添加JAXB依赖,方法如下:

<dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
</dependency>
           

 重新加载maven ,运行OK 

运行时报:nested exception is java.lang.NoClassDefFoundError