Я пытаюсь получить доступ к конечной точке Spring в среде AWS-EKS. Я не воссоздаю эту проблему локально, но в журналах производства мы видим внутреннюю ошибку сервера lot 500 с указанным ниже исключением EOF, зарегистрированным одновременно:
logtype: tomcat-server message: Servlet.service() для сервлета [com.abc.platform.xservices.rest.abcApplication] в контексте с путем [/something] выдал исключение [org.glassfish.jersey.server.ContainerException: java.io.EOFException: Неожиданное чтение EOF на сокете] с основной причиной java.io.EOFException: Неожиданное чтение EOF на сокете в org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:722) в org.apache.coyote.http11.Http11InputBuffer.access$300(Http11InputBuffer.java:40) в org.apache.coyote.http11.Http11InputBuffer$SocketInputBuffer.doRead(Http11InputBuffer.java:1072)
Есть идеи, почему мы видим эту проблему в производстве? Спасибо.
решение1
Это внутренняя ошибка сервера, которая возвращаеткод статуса 500 в ответе
Это может быть вызвано некорректными запросами, но также причиной может быть код сервера или перегрузка. Если у вас есть доступ к серверу, проверьте журналы событий.
Смотрите также
500 EOF, когда ожидается заголовок фрагмента
Почему LWP::UserAgent может завершаться ошибкой «500 EOF»?
500 EOF вместо строки статуса ответа в скрипте Perl
Ошибка Apache 1.3 - Неожиданный EOF при чтении HTTP-статуса - connectionreset
ОБНОВЛЕНИЕ С другой стороны, если это не ответное сообщение, а настоящее исключение, то это может быть просто ошибка,как в старой java Обойти это можно, поместив getResponseCode() внутрь try/catch и вызвав второй раз при возникновении исключения:
int responseCode = -1;
try {
responseCode = con.getResponseCode();
} catch (IOException ex1) {
//check if it's eof, if yes retrieve code again
if (-1 != ex1.getMessage().indexOf("EOF")) {
try {
responseCode = con.getResponseCode();
} catch (IOException ex2) {
System.out.println(ex2.getMessage());
// handle exception
}
} else {
System.out.println(ex1.getMessage());
// handle exception
}
}
Разговор по лимиту количества подключений, читать.