Error creating bean with name *.PageHelperAutoConfiguration 异常解析
一、问题报错
微服务安装成功,启动失败,报错如下:
二、 Spring Boot应用启动错误分析
错误概述
这是一个Spring Boot应用启动过程中出现的Bean创建错误。根据错误堆栈,主要问题在于无法创建PageHelper分页插件的自动配置类。
详细错误信息
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration'
...
nested exception is java.lang.NoClassDefFoundError: net/sf/jsqlparser/statement/select/SelectBody
问题原因
这个错误的核心是类未找到异常(NoClassDefFoundError
):
- 应用试图加载PageHelper的自动配置类(
PageHelperAutoConfiguration
) - 但是缺少
net.sf.jsqlparser.statement.select.SelectBody
类 - 这个类属于jsqlparser库,是PageHelper分页插件运行所必需的依赖
解决方案
1)Maven构建
-
添加jsqlparser依赖(如果项目中尚未添加)
<dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>3.2</version> <!-- 或更新版本 --> </dependency>
-
检查依赖冲突:如果已经添加了jsqlparser依赖,可能是版本兼容性问题,尝试更新到与PageHelper兼容的版本
-
重新构建项目:确保依赖被正确下载并打包
2)使用Gradle检查依赖问题
以下是使用Gradle检查此问题的几种方法:
1. 检查依赖树
运行以下命令查看完整的依赖树,找出是否有依赖冲突或缺失:
./gradlew :<your-project-module>:dependencies --configuration runtimeClasspath
查找jsqlparser
库,确认它是否被正确引入,以及是否有版本冲突。
2. 检查PageHelper和jsqlparser版本兼容性
确认你使用的PageHelper版本与jsqlparser版本是否兼容。例如,如果使用PageHelper 1.2.5+,通常需要jsqlparser 3.1+。
3. 查看具体的依赖配置
检查你的build.gradle
文件中有关PageHelper的配置:
dependencies {implementation 'com.github.pagehelper:pagehelper-spring-boot-starter:x.x.x'// 或者单独引入implementation 'com.github.pagehelper:pagehelper:x.x.x'
}
4. 强制指定jsqlparser版本
如果发现有多个版本的jsqlparser被引入,可以强制指定一个兼容版本:
configurations.all {resolutionStrategy.force 'com.github.jsqlparser:jsqlparser:x.x.x'
}
5. 使用依赖报告
生成详细的依赖报告进行分析:
./gradlew :<your-project-module>:dependencyInsight --configuration runtimeClasspath --dependency com.github.jsqlparser:jsqlparser
修复依赖问题后,重新构建并启动应用应该能解决该异常。
三、结论
经检查项目由gradle构建已经引入pagehelper-spring-boot-starter 从1.4.6为 版本不兼容所致,升级到:2.1.0,重新构建问题解决。