背景
实际项目中使用的是java8开发的,部署的服务器安装的是java11
问题
报错:java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
原因分析
JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。
java9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包。而在 java 6/7/8 时关于这个API 都是捆绑在一起的
解决办法
- 方式一
降低JDK 版本到 JDK 8 - 方式二
手动添加以下依赖Jar包
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>