You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JHipster升级至7.1.0网关抛出ClassNotFoundException异常

问题根因

你第一步的修复方向完全错了。JHipster 7.1.0的微服务网关默认走Spring WebMVC(Servlet)技术栈,不是WebFlux响应式栈。最初报ServerCodecConfigurer找不到,本质是升级过程中配置覆盖不全导致Spring MVC自带的编码配置类没被正常加载,和缺WebFlux依赖没有关系。
你把spring-boot-starter-web换成spring-boot-starter-webflux相当于直接把整个Web技术栈切到了响应式,而项目里自动生成的LocaleConfiguration是Servlet栈专属的,依赖org.springframework.web.servlet.LocaleResolver类,这个类在WebFlux包里根本不存在,自然会抛ClassNotFoundException: LocaleResolver。

修复步骤
  • 先回退错误的依赖修改:如果用Maven就改pom.xml,用Gradle就改build.gradle,把spring-boot-starter-webflux删掉,换回原生的spring-boot-starter-web,依赖配置和JHipster 7.1.0默认生成的网关保持一致。
  • 清理编译缓存,避免旧的class文件干扰启动:
# Maven项目执行
mvn clean

# Gradle项目执行
./gradlew clean
  • 检查启动类配置:找到项目入口类OhEssentialsApp.java,确认两个点:
    • 类上的@SpringBootApplication注解没有手动排除CodecsAutoConfiguration,这个自动配置类就是负责在Servlet栈下注册ServerCodecConfigurer Bean的
    • 启动类放在根包oh.essentials下,所有业务类、配置类都在该包的子包路径下,保证Spring组件扫描范围能覆盖到所有配置
  • 上述操作做完还是报错的话,直接强制重新生成项目文件,修复升级过程中遗漏的配置:
npx jhipster --with-entities --force

生成过程中网关类型保持默认的Servlet栈选项,不要选响应式网关,生成完成后重新启动即可。

注意事项

不要照着零散的回答随便改核心依赖:手动注册ServerCodecConfigurer Bean会引发循环依赖,随便切WebFlux栈会导致整套本地化、权限拦截、网关路由逻辑全部不兼容,JHipster生成的代码和所选技术栈是强绑定的,乱改依赖只会引出更多连锁报错。

内容的提问来源于stack exchange,提问作者cluis92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.31 23:39:21