一、问题报错
微服务安装成功,启动失败,报错如下:
二、 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,重新构建问题解决。
评论前必须登录!
注册