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

Heroku部署Spring Boot应用报错H14 503无Web进程无法访问

Heroku H14 "No web processes running" 错误排查方案

这个错误和你贴出的Controller业务代码无关,核心原因是Heroku平台当前没有运行可接收HTTP请求的web类型进程,按以下步骤逐一排查即可:

  • 检查项目根目录的Procfile配置
    Heroku通过项目根目录下无后缀、全小写命名的Procfile识别进程类型,Spring Boot应用必须在该文件中明确定义名为web的进程启动命令,参考写法:
    web: java -jar target/[你项目构建生成的可执行jar包全名].jar
    
    注意三个易错点:
    • 文件不能放在子目录,必须在项目根目录,文件名不能写成procfile、Procfile.txt这类错误格式
    • 进程名必须是web,自定义命名为worker、app等的进程不会接收Heroku路由转发的HTTP请求
    • jar包路径、文件名必须和实际构建产出完全匹配:Maven构建的jar默认在target目录,Gradle构建的jar默认在build/libs目录
  • 手动调整web dyno实例数
    不少场景下即使Procfile配置正确,首次部署后web dyno默认实例数为0,直接执行Heroku CLI命令启动实例即可:
    heroku ps:scale web=1
    
    执行后运行heroku ps查看进程状态,正常会返回web.1状态为up的结果,如果还是显示0实例说明配置未生效。
  • 校验端口绑定规则
    Heroku不会使用Spring Boot默认的8080端口,会动态分配端口存在系统环境变量PORT中,需要保证应用启动时监听该变量指定的端口,在Spring Boot配置文件中添加如下配置即可:
    server.port=${PORT:8080}
    
    如果端口绑定错误,web进程启动后会立刻崩溃,最终也会表现为无可用web进程。
  • 核对构建日志确认jar包正常生成
    如果构建阶段报错没有产出可执行jar包,即使Procfile配置正确也无法启动进程,执行heroku logs --tail查看实时部署、启动日志,排查是否存在依赖下载失败、打包失败、启动时抛出异常等问题。

你贴出的TestController代码逻辑正常,不需要针对接口层做修改,问题全部出在Heroku平台的进程、部署配置层面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:22