今天开发,又碰到一个奇奇怪怪的问题。

u=2520885948,32151&fm=26&gp=0.jpg

问题描述

今天拉同事的代码,编译项目时出错。其报错信息为:

Error creating bean with name 'xmlModelPlugin': Lookup method resolution failed;

上网查了下,这个报错的原因是:原项目在jdk1.8下运行的,升级成jdk11之后缺了一些jar包

Java jdk 中将:

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

解决办法

方法一:

降低JDK 版本到 JDK 8

这里下载一个版本:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
安装注意:jre 改变下目录,或者选择不安装。

方法二:

手动添加依赖包

<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>

如果想一劳永逸和协作间的考虑,可以选择第二种办法。