#java #rest #ssl #jersey #jersey-client
#java #rest #ssl #джерси #джерси-клиент
Вопрос:
Я использую Jersey-client-2.27, через который вызывается вызов https get, как показано ниже:
Client client = ClientBuilder.newClient();
return client.target(url)
.request(MediaType.APPLICATION_JSON)
.header("authorization", token)
.get(String.class);
Получение исключения ниже один раз при каждых 10-15 обращениях к методу клиента get():
"status":500,
"reason":"Internal Server Error",
"code":0,
"message":
javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:284)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:278)
at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:767)
at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
at org.glassfish.jersey.internal.Errors.process(Errors.java:229)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:414)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:765)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:428)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:324)
Что может быть причиной частого сбоя вызова API, особенно во время нагрузочного тестирования, и как я могу это устранить? Я уже пробовал игнорировать SSL-сертификат и добавлять сертификат x509 при отправке запроса
Комментарии:
1. Не похоже, что ваш клиент делает что-то не так. Вам нужно будет просмотреть журналы на сервере, чтобы выяснить, почему он прерывает соединение.
2. Я не видел никаких ошибок в журналах сервера. Похоже, что сам клиент потерпел неудачу при общении.