Мы представили некоторые REST API. Мы видим исключения IOException несколько раз на сервере. Мы не уверены, как мы можем оправиться от них.
Вид ошибок ввода-вывода, которые мы видим:
Тайм-аут клиента - мы отправили http-код ошибки client_timed_out http и повторили попытку клиента. Это хорошо работает.
Данные неверны. Например, то, что мы видим, это «Неверный CRLF» Либо это ошибка клиента, либо что-то пошло не так в стеке TCP / IP.
Как вы думаете, это может произойти на уровне TCP / IP? Если да, протокол Http не должен содержать код ошибки, который сервер может отправить клиенту, и клиент может повторить запрос.
Трассировка стека исключений
java.io.IOException: Invalid CRLF
at org.apache.coyote.http11.filters.ChunkedInputFilter.parseCRLF(ChunkedInputFilter.java:364)
at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:145)
at org.apache.coyote.http11.AbstractInputBuffer.doRead(AbstractInputBuffer.java:308)
at org.apache.coyote.Request.doRead(Request.java:422)
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:287)
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:374)
at org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:300)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:108)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at java.util.zip.CheckedInputStream.read(CheckedInputStream.java:42)
at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:247)
at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:239)
at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:142)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:67)
at org.restlet.engine.application.DecodeRepresentation.getDecodedStream(DecodeRepresentation.java:142)
at org.restlet.engine.application.DecodeRepresentation.getStream(DecodeRepresentation.java:212)
at com.inlogy.server.ingraph.service.apis.resource.DocumentHashMapResource.post(DocumentHashMapResource.java:57)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:380)