当我编译我的 spring 项目时,出现以下错误。
Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; Nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
...
Caused by java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
...
Caused by java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
我正在开发一个旧项目,该项目是使用以下软件版本编写的
Java 8 春季启动 2.7.12
我正在尝试使用 java 17 构建这个项目
通过谷歌搜索,我发现8之后的java版本没有jaxb api。因此我将这些依赖项添加到我的 pom.xml 文件中
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>4.0.2</version>
</dependency>
即使添加它们后,我仍然收到找不到类的错误
从 JAXB 3.0 开始,类位于包中
jakarta.xml.bind
javax.xml.bind
适用于 JAXB,直至 2.0。
所以你必须: