Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError

懒驴 2021年11月23日 2,628次浏览

错误: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

在spring项目中调用接口,出现以上报错,这是由于缺少了jaxb-api包导致的。Java8和其以前的版本,默认包含jaxb这个jar包;但是在Java SE9就不再包含这个包了,如果使用则需要手动引进。

JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java 9中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 
的Jar包,而在 java 6/7/8 时关于这个API都是捆绑在一起的

解决方法
pom.xml手动引入包

<!--解决Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError-->
<dependency>
	<groupId>javax.xml.bind</groupId>
	<artifactId>jaxb-api</artifactId>
	<version>2.3.0</version>
</dependency>
<dependency>
	<groupId>com.sun.xml.bind</groupId>
	<artifactId>jaxb-impl</artifactId>
	<version>2.3.0</version>
</dependency>
<dependency>
	<groupId>com.sun.xml.bind</groupId>
	<artifactId>jaxb-core</artifactId>
	<version>2.3.0</version>
</dependency>
<dependency>
	<groupId>javax.activation</groupId>
	<artifactId>activation</artifactId>
	<version>1.1.1</version>
</dependency>
<!--解决Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError-->
        

OK,问题解决!!