SpringCloud启动报错:
java.lang.TypeNotPresentException:Type javax.xml.bind.JAXBContext not present
Unable to start embedded Tomcat
如果你的JDK版本超过8,那么恭喜你,这个错误是必然出现的。(本人用的是JDK11 /(ㄒoㄒ)/~~)。原因是因为jaxb-api原本是javaEE的一部分,在JDK9+版本以后,jaxb默认不会加载。从而导致Type javax.xml.bind.JAXBContext not present
(巨坑)。
- 解决方案一:换回JDK8版本。(等于没说)
- 解决方案二:在pom文件里引入jaxb相关依赖,导入相关jar包。
<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>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>