orgspringframeworkwebutilNestedServletException Handler dispatch failed; nested exception is javalangNoClassDefFoundError javaxxmlbindDatatypeConverter 解决
该异常是由于JDK版本升级之后,javax.xml.bind.DatatypeConverter类被删除所致。解决该问题的方法如下:
- 在pom.xml文件中添加以下依赖:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
- 在应用程序的启动参数中添加以下参数:
--add-modules java.xml.bind
例如,对于Tomcat,可以在启动脚本中添加以下命令:
set "JAVA_OPTS=%JAVA_OPTS% --add-modules java.xml.bind"
- 如果您使用的是JDK 9或更高版本,则可以使用以下代码解决该问题:
import javax.xml.bind.DatatypeConverter;
public class Base64Utils {
public static String encode(String str) {
return DatatypeConverter.printBase64Binary(str.getBytes());
}
public static String decode(String str) {
return new String(DatatypeConverter.parseBase64Binary(str));
}
}
这段代码使用了DatatypeConverter的替代方法来进行Base64编码和解码
原文地址: https://www.cveoy.top/t/topic/ddVz 著作权归作者所有。请勿转载和采集!