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

部署在PCF上的Micronaut Java应用REST端点无法访问求助

排查Micronaut应用在PCF上502 Bad Gateway问题的步骤

这问题我之前帮同事排查过类似的,咱们一步步来定位原因:

1. 确认端口配置是否匹配PCF要求

PCF会为每个应用分配一个随机端口,并通过环境变量PORT传递给应用。Micronaut默认监听8080,但在PCF上必须监听这个PORT变量指定的端口,否则流量无法转发到应用,直接导致502。

  • 检查你的application.yml或application.properties,确保端口配置为:
    micronaut:
      server:
        port: ${PORT:8080}
    
    这样本地会用8080,PCF上自动读取分配的端口。
  • 也可以在启动类里手动绑定端口,不过推荐用配置文件的方式更稳妥。

2. 查看PCF应用日志找异常

日志是排查问题的关键,用以下命令拉取最近的日志:

cf logs <你的应用名称> --recent

重点看这几类信息:

  • 启动时是否有端口绑定失败的报错,比如Failed to bind to address 0.0.0.0:<端口号>
  • 路由注册日志,确认/test/g1端点是否被Micronaut正确加载(比如会有类似Registered route GET /test/g1的日志)
  • 请求进来时的异常信息,比如有没有404或者内部错误被PCF转成502

3. 验证PCF路由映射是否正确

有时候502是因为路由没绑定到应用,或者访问路径不对:

  • 用cf routes命令查看你的应用是否有对应的路由,比如是否存在https://<你的应用域名>.cfapps.io这样的路由条目
  • 确认访问的URL路径和本地一致:本地是localhost:8080/test/g1,PCF上应该是https://<你的应用域名>.cfapps.io/test/g1,不要多加或少加路径前缀

4. 确认胖jar打包的正确性

确保你上传到PCF的胖jar和本地运行的是同一个,且打包完整:

  • 本地直接运行这个胖jar:java -jar <你的胖jar文件名>.jar,验证/test/g1端点能正常访问
  • 检查打包命令是否正确:Micronaut用Gradle的话是./gradlew shadowJar,Maven是./mvnw package,确保生成的是包含所有依赖的可执行jar

5. 检查Micronaut环境配置(比如prod环境)

如果PCF上用的是prod环境,可能存在端点被禁用的配置:

  • 查看application-prod.yml里是否有禁用端点的配置,比如:
    micronaut:
      server:
        endpoints:
          enabled: false
    
    如果有,需要单独开启/test/g1对应的端点,或者调整全局配置

6. 尝试重启应用

有时候PCF部署后可能存在端口绑定缓存或启动异常,重启应用试试:

cf restart <你的应用名称>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:26:39