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

Java使用RestTemplate调用API:本地正常JBoss部署报UnknownHostException

JBoss部署后RestTemplate调用API出现UnknownHostException的解决办法

UnknownHostException本质是目标API域名无法被服务器解析,以下是针对性排查和解决步骤:

  • 先验证服务器网络连通性

    • 登录JBoss所在服务器,执行ping 目标API域名、nslookup 目标API域名命令,确认域名能否正常解析。如果解析失败,说明是服务器DNS配置问题,需更换为可用的DNS服务器(如公共DNS 8.8.8.8或内网指定DNS)。
    • 若域名能解析但ping不通,大概率是服务器防火墙/安全组拦截了对外请求,需确认是否允许访问目标API的端口(通常是80/443)。
  • 检查RestTemplate配置

    • 若代码中自定义了ClientHttpRequestFactory(比如HttpComponentsClientHttpRequestFactory),需确认其代理、DNS相关配置在服务器环境下是否生效。本地的代理设置可能在服务器上不可用,建议先切换回默认工厂测试:
      RestTemplate restTemplate = new RestTemplate(new SimpleClientHttpRequestFactory());
      
  • 排查JBoss自身网络配置

    • 打开JBoss的standalone.xml或domain.xml,检查<system-properties>节点是否存在java.net.preferIPv6Addresses等影响DNS解析的参数,如有尝试调整或移除。
    • 查看服务器/etc/hosts文件,确认目标域名未被错误映射到无效IP。
  • 调整JVM DNS缓存策略

    • JVM默认会缓存DNS解析结果,过期缓存可能导致解析失败。在JBoss启动参数中添加以下配置,缩短DNS缓存时长:
      -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=10
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:35:35