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

Heroku部署Spring Boot微服务构建成功访问报Application Error排查

Heroku部署Spring Boot多模块项目启动失败修复方案

核心问题1:Procfile的Jar路径写错

你的项目是多模块结构,根模块weddingapp是pom聚合类型,本身不会生成可执行Jar,实际业务模块couple的构建产物存放在Couple/target/目录下。当前Procfile里写的target/*.jar会直接找根目录下target文件夹里的Jar,根本匹配不到可执行文件,进程启动直接失败。
把Procfile内容替换成下面的配置:

web: java -Dspring.profiles.active=default -Dserver.port=$PORT -jar Couple/target/*.jar

核心问题2:缺少数据库连接配置

你只配置了JPA的表生成策略,没有写PostgreSQL的连接参数,就算开通了Heroku Postgres附加组件,Spring Boot也拿不到连接信息,启动时连不上数据库会直接崩溃。
Heroku Postgres会自动把数据库连接信息注入到环境变量里,直接在application.properties中补充以下配置即可:

spring.datasource.url=${JDBC_DATABASE_URL}
spring.datasource.username=${JDBC_DATABASE_USERNAME}
spring.datasource.password=${JDBC_DATABASE_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=create-drop

可选排查点:确认可执行Fat Jar打包正常

从你贴的构建日志看,只记录了普通maven-jar-plugin打薄包的步骤,没有出现Spring Boot插件重打包Fat Jar的日志。如果改完上面两个配置后启动报no main manifest attribute错误,就把父pom中<pluginManagement>标签内的spring-boot-maven-plugin配置,挪到和maven-compiler-plugin同级的外层<plugins>标签下,保证构建时会执行repackage步骤,把所有依赖都打进可执行Jar中。

验证方法

所有配置改完后重新提交代码推送到Heroku触发部署,部署完成后如果访问还是报错,直接看实时启动日志定位具体报错点就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:57:20