Spring Boot应用新电脑启动正常但调用API报antlr.RecognitionException异常求助
解决Spring Boot调用API时抛出java.lang.ClassNotFoundException: antlr.RecognitionException的问题
这个异常的核心原因是antlr 2.x依赖缺失——Hibernate 5.x版本依赖antlr来解析HQL语句,你的新电脑环境中没有正确引入该依赖,导致API调用触发HQL解析流程时找不到对应的类。
解决方案:
添加antlr依赖
根据你的构建工具,在项目配置中明确引入与Hibernate 5.4.29.Final兼容的antlr 2.7.7版本:
Maven(pom.xml):<dependency> <groupId>antlr</groupId> <artifactId>antlr</artifactId> <version>2.7.7</version> </dependency>Gradle(build.gradle):
implementation 'antlr:antlr:2.7.7'清理并重新构建项目
执行清理构建命令,确保新电脑本地仓库拉取完整依赖:
Maven:mvn clean install
Gradle:gradle clean build检查依赖排除配置
排查项目中是否有其他依赖通过<exclusions>(Maven)或exclude语法(Gradle)排除了antlr,如果有,移除对应的排除规则。验证依赖树
通过命令确认antlr依赖已被正确引入:
Maven:mvn dependency:tree | grep antlr
Gradle:gradle dependencies | grep antlr
为什么其他电脑正常?
其他电脑的本地Maven/Gradle仓库已经缓存了antlr依赖,或者项目构建缓存中包含了该依赖,而新电脑是首次构建,依赖拉取不完整或配置缺失导致问题出现。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

