У меня развернуто Java-приложение на моем локальном сервере Tomcat.Это приложение должно вызывать некоторые API для правильной работы, но, к сожалению, я получаю разные исключения с разными подходами, и я не знаю, как решить эту проблему.Когда я запускаю этот фрагмент кода локально, он работает нормально.Но после развертывания это больше не работает.Первое, что я попробовал, было следующее:
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpHost target = new HttpHost(apiAdress, 443, "HTTPS");
HttpHost proxy = new HttpHost(proxyAdress, 80, "HTTP");
RequestConfig config = RequestConfig.custom()
.setProxy(proxy)
.build();
HttpGet request = new HttpGet(getPath);
request.setConfig(config);
CloseableHttpResponse response = httpclient.execute(target, request);
try {
LOG.debug("----------------------------------------");
LOG.debug(response.getStatusLine().toString());
HttpEntity responseEntity = response.getEntity();
if(responseEntity!=null) {
String responseString = EntityUtils.toString(responseEntity);
return JsonUtils.getObjectFromJson(responseString, NachrichtenResponse.class);
}
} catch (Exception e) {
LOG.error(e.getMessage(),e);
} finally {
response.close();
}
} catch (Exception ex) {
LOG.error(ex.getMessage(),ex);
} finally {
try {
httpclient.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
это приводит к следующему исключению:
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:146)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:131)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 106 common frames omitted
Когда я меняю схему прокси на HTTPS, как это
HttpHost proxy = new HttpHost("94.100.132.14", 80, "HTTPS");
это приводит к следующему исключению:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
и без настроенного прокси я получаю отказ в соединении исключения.Я действительно не знаю, в чем проблема, и мне трудно понять это.Кто-нибудь когда-нибудь сталкивался с подобной проблемой и имеет решение для этого?