Как исправить 'HttpMessageNotReadableException' и 'SocketTimeOutException', возникающие при весенней загрузке - PullRequest
0 голосов
/ 18 июня 2019

Я столкнулся с HttpMessageNotReadableException с SocketTimeOutException в производственной среде, основную причину которого я не смог выяснить и также не смог воспроизвести. Поскольку это произошло в производстве, я хочу исправить это, чтобы клиенты больше не сталкивались с проблемами. Надеюсь, что сообщество может помочь.

Exception

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: (was java.net.SocketTimeoutException); nested exception is com.fasterxml.jackson.databind.JsonMappingException: (was java.net.SocketTimeoutException) (through reference chain: com.org.example.api.request.SignatureRequest["users"]->java.util.ArrayList[0])
caused by com.fasterxml.jackson.databind.JsonMappingException: (was java.net.SocketTimeoutException) (through reference chain: com.org.example.api.request.SignatureRequest["users"]->java.util.ArrayList[0]) caused by java.net.SocketTimeoutException

Я пробовал возможных плохих запросов от почтальона, попавших в API. Я смог произвести HttpMessageNotReadableException, но не SocketTimeOutException. Мы используем Spring boot 2.0.4

Я хотел выяснить, почему это произошло и как я мог предотвратить его появление в будущем?

1 Ответ

0 голосов
/ 18 июня 2019

Для HttpMessageNotReadableException

Если вы можете воспроизвести проблему с помощью неверного запроса, то вы можете справиться с ними, применив проверку или используя try-catch.

Для SocketTimeOutException

Предотвращение исключения SocketTimeoutException. Один из способов его эффективной обработки - определить время ожидания соединения, а затем обработать его с помощью блока try-catch.

Пример:

HttpUrlConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(7000); //set the timeout in milliseconds
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...