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
相关产品推荐
相关产品推荐

