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

Spring/React Web应用页面无法加载且报StackOverflowError错误如何解决

故障排查结果

根因

故障的直接触发原因是HomeController中存在无限转发死循环:

  • 你给根路径/绑定的GET接口返回值为forward:/,意为将请求转发到根路径/本身
  • 每次转发都会重新命中该接口,递归调用无退出条件,最终触发StackOverflowError栈溢出,对应前端返回的500错误。

此前项目运行正常大概率是因为:之前该Controller的逻辑不同、或者静态资源优先级高于Controller映射没有命中该接口、或者该Controller代码未被实际加载生效。

解决方案

根据你的业务场景二选一即可:

场景1:根路径需要返回React前端首页

这也是Spring+React全栈项目的常规用法,按如下修改即可:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {
  @GetMapping(value = {"/"})
  public String getHomePage() {
    // 直接返回静态首页路径,SpringBoot会自动读取resources/static下的index.html
    return "index.html";
  }
}

如果你的React打包产物已经正确放在resources/static目录下,也可以直接删除整个HomeController,SpringBoot默认会将根路径请求指向静态目录下的index.html。

场景2:根路径需要转发到其他后端接口

将转发路径改为你实际的目标接口路径,不要指向根路径本身即可,例如:

// 示例:转发到/api/list接口
return "forward:/api/list";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:03