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

在Apache Flink中运行Jar包后无法访问REST端点的问题求助

解决Flink运行Jar后无法访问自定义REST端点的问题

1. 修正端口与绑定地址

  • 你的代码中HttpServer绑定的是localhost:8001,但你尝试访问的是http://localhost:9001/xyz,端口不匹配,请统一访问端口为8001。
  • 将绑定地址从localhost改为0.0.0.0,允许外部或Flink集群节点的其他地址访问:
    server = HttpServer.create(new InetSocketAddress("0.0.0.0", 8001), 0);
    

2. 阻止Flink客户端进程退出

使用flink run提交Jar时,main方法作为Flink客户端代码执行,执行完成后进程会直接退出,导致你启动的HttpServer也随之终止。需要在main方法中添加阻塞逻辑,保持进程存活:
在localServer.startServer();后加入以下代码:

// 让主线程持续阻塞,直到收到中断信号
Thread.currentThread().join();

或者用循环等待替代:

while (true) {
    Thread.sleep(1000);
}

3. 确认网络访问权限

  • 若Flink运行在容器或集群环境中,需确保8001端口未被防火墙、容器网络策略拦截。
  • 若是Session集群模式,确认集群节点的8001端口可被外部访问。

4. 排查类加载冲突

确保HttpServer相关依赖(如JDK自带的com.sun.net.httpserver包)未被Flink类加载器拦截。JDK原生类通常无此问题,若使用第三方HTTP服务器,需确认依赖已正确打包进Jar包。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:12:18