Error creating bean with name *.PageHelperAutoConfiguration 异常解析

一、问题报错

微服务安装成功,启动失败,报错如下:

Error creating bean with name *.PageHelperAutoConfiguration 异常解析_第1张图片

二、 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构建

  1. ​添加jsqlparser依赖​​(如果项目中尚未添加)

    
        com.github.jsqlparser
        jsqlparser
        3.2 
    
  2. ​检查依赖冲突​​:如果已经添加了jsqlparser依赖,可能是版本兼容性问题,尝试更新到与PageHelper兼容的版本

  3. ​重新构建项目​​:确保依赖被正确下载并打包

2)使用Gradle检查依赖问题

以下是使用Gradle检查此问题的几种方法:

1. 检查依赖树

运行以下命令查看完整的依赖树,找出是否有依赖冲突或缺失:

./gradlew ::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 ::dependencyInsight --configuration runtimeClasspath --dependency com.github.jsqlparser:jsqlparser

修复依赖问题后,重新构建并启动应用应该能解决该异常。

三、结论

       经检查项目由gradle构建已经引入pagehelper-spring-boot-starter 从1.4.6为 版本不兼容所致,升级到:2.1.0,重新构建问题解决。

你可能感兴趣的:(java)