今天在学习Spring Data Jpa时,在对Dao进行测试时,碰到上面的错误,经查阅后,成功解决。
问题出现原因:Hibernate core 5.1.0.Final include dom4j-1.6.1 jar which throws this error. To fix this, need to exclude dom4j-1.6.1 from hibernate-core and include dom4j-1.6 in your pom.。在Hibernate core 5.1.0 Final架包中包括dom4j-1.6.架包,所以导致了这个错误。解决方法如下:
1:先删除本地仓库里的 dom4j文件夹
2:在项目的pom.xml文件中,将dom4j从Hibernate core中删除并重新导入dom4j依赖,我的代码如下
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.1.0.Final</version>
<exclusions>
<exclusion>
<artifactId>jta</artifactId>
<groupId>javax.transaction</groupId>
</exclusion>
<!-- Exclude SLF4j to avoid version conflicts -->
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<!-- Exclude dom4j to avoid version conflicts -->
<exclusion>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
<!-- 移除dom4j -->
</exclusions>
</dependency>
<!-- 重新 引入dom4j依赖 -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
3:完成上面步骤后,发现项目的包依赖会有问题,这时候重新导入项目即可