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

Apache HttpClient配置代理在Tomcat中失效问题求助

问题:Tomcat部署后HttpClient调用需代理API出现"Name or service not known"错误

环境信息

  • Java版本:11
  • Apache HttpClient版本:4.5.14

问题描述

开发了一个基于JSF和Apache HttpClient的Web应用,调用需要代理的API时,在服务器命令行运行代码可正常工作,但通过Tomcat部署运行时,出现「Name or service not known」错误。已尝试通过环境变量和Tomcat的setenv.xml配置代理,但仅在Tomcat外运行时有效。

相关代码

private String getCpf(String tokenClient) throws IOException {
    String result = null;
    try {
        System.out.println("Inicio do processamento.....");
        
        System.out.println("Token informado: " + tokenClient);
        
        ObjectMapper objectMapper = new ObjectMapper();
        
        
        System.out.println("Configurando o proxy...");
        HttpHost proxy = new HttpHost("111.111.111.111", 8080);
        DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
        //HttpClient httpClient = HttpClients.custom().setRoutePlanner(routePlanner).build();
        HttpClient httpClient = HttpClients.createDefault();
        
        HttpGet httpGet = new HttpGet(
                "https://servidor.com.br/api-servidor/api/login/validatoken");

        httpGet.addHeader("Authorization", "Bearer " + tokenClient.replace("\"", ""));

        httpGet.addHeader("accept", "application/json");
        
        System.out.println("Antes do envio....");
        
        HttpResponse response = httpClient.execute(httpGet);
        System.out.println("Apos o envio....");
    
        System.out.println("Coletando o retorno....");
        HttpEntity entity = response.getEntity();
        System.out.println("Código do retorno: " + response.getStatusLine().getStatusCode());
        if (entity != null && response.getStatusLine().getStatusCode() == 200) {
            System.out.println("Retorno em string: " + EntityUtils.toString(entity));
            result = EntityUtils.toString(entity);
            System.out.println("Convertendo o retorno em json....");
            JsonNode jsonNode = objectMapper.readTree(result);
            
            result = jsonNode.get("cpfcnpj").asText();
            System.out.println("Cpf retornado: " + result);
        }
    } catch (IOException e) {
        System.out.println("Erro: " + e.getMessage());
        return result;
    }
    
    System.out.println("Fim da execução....");
    return result;
}

内容的提问来源于stack exchange,提问作者Emmanuel Thadeu Souza Trindade

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 18:55:19