今天本来打算好好学习一下若依这个开源的后台管理开源框架,配置好环境后一直前端登录不进去,F12在控制台也没整明白问题到底出在哪,后来在IDEA的报错中找到一行
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
,才搞明白是由于我的jdk版本过高,用的是11.0。
JAXB API是java EE的API,在java 8及8以前,是包含了这个API的。
我们都知道在java 9中引入了模块的概念,默认情况下,Java SE中将不再包含以前java EE中含有的jar包。因此在java SE 9中已经不再包含这个jar包了。
解决方法是要么降低jdk版本,要么手动在pom.xml中添加以下依赖。
<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>
所以以后学习开源项目还是要各种版本都尽量保持一致,吃一堑长一智。