Estou tentando acessar o endpoint Spring no ambiente AWS-EKS, não estou recriando esse problema localmente, mas nos logs de produção vemos o lote 500 Erro interno do servidor com a exceção EOF abaixo registrada ao mesmo tempo:
logtype: mensagem do servidor tomcat: Servlet.service() para servlet [com.abc.platform.xservices.rest.abcApplication] no contexto com caminho [/something] lançou exceção [org.glassfish.jersey.server.ContainerException: java. io.EOFException: leitura EOF inesperada no soquete] com causa raiz java.io.EOFException: leitura EOF inesperada no soquete em org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:722) em org.apache. coyote.http11.Http11InputBuffer.access$300(Http11InputBuffer.java:40) em org.apache.coyote.http11.Http11InputBuffer$SocketInputBuffer.doRead(Http11InputBuffer.java:1072)
Alguma ideia de por que vemos isso em questão na produção? Obrigado.
Responder1
É um erro interno do servidor, que retornacódigo de status 500 em resposta
Isso pode ser causado por solicitações incorretas, mas também o código do servidor ou a sobrecarga podem ser o motivo. Se você tiver acesso ao servidor, verifique os logs de eventos.
Veja também
500 EOF quando o cabeçalho do bloco é esperado
Por que o LWP::UserAgent pode estar falhando com '500 EOF'?
500 EOF em vez da linha de status de resposta no script perl
Erro do Apache 1.3 - EOF inesperado lendo status HTTP - connectionreset
ATUALIZAÇÃO Por outro lado, se não for uma mensagem de resposta, mas uma exceção real, então pode ser simplesmente um bug,assim como no java antigo E a solução alternativa pode ser colocar getResponseCode() dentro de try/catch e chamar pela segunda vez na exceção:
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
}
}
Falando por limite de número de conexões, leia.