Bom dia, devs!
Estou com o seguinte problema:
O código abaixo é uma implementação de checkout onde recebo uma resposta em json. Em modo de desenvolvimento, tudo funciona perfeitamente, mas quando realizo
o deploy no servidor de hospedagem gera e exeção javax.net.ssl.SSLException. Fiz várias pesquisas, mas ainda não consegui uma implementação para solucionar
o meu problema.
Podem me ajudar?
Map< String, Object> jsonValues = new HashMap<>();
jsonValues.put("param1", jsonString);
JSONObject jsonObject = new JSONObject(jsonString);
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(urlCheckout);
post.setHeader("Content-Type", "application/json");
post.setHeader("X-CC-Api-Key", ApiKey);
post.setHeader("X-CC-Version", version);
StringEntity entity = new StringEntity(jsonObject.toString(), "UTF8");
entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(entity);
// Resposta
HttpResponse response = null;
try {
response = client.execute(post);
} catch (IOException ex) {
Logger.getLogger(PagamentoNegocio.class.getName()).log(Level.SEVERE, null, ex);
}
HttpEntity httpEntity = response.getEntity();
if (response.getStatusLine().getStatusCode() == 201) { // Se o checkout for criado
// Le o conteudo de uma entidade e retorna como uma String.
String content = EntityUtils.toString(httpEntity);
JSONObject objetoJson = (new JSONObject(content)).getJSONObject("data");
id = objetoJson.getString("id");
urlReturn = urlReturn + id;
return urlReturn;
} else {
// TODO:
}
return null;
javax.net.ssl.SSLException: Received fatal alert: protocol_version
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56)