2012-02-06 10 views
1

一部のREST APIが公開されました。 IOExceptionはサーバー上で数回確認されます。私たちはそれらからどのように回復するのかよくわかりません。HTTP I/Oエラーから復旧する

我々は

  1. クライアントがタイムアウトしている参照してI/Oエラーの種類 - 私たちはclient_timed_out HTTPエラーコードとクライアントの再試行を送りました。これはうまくいく。

  2. データが無効です。例えば、私たちが見るのは "無効な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) 
+0

各エラーの逐語テキストを含めないのはなぜですか? (おそらく、Ctrlキーを押しながらKキーを押して、コードとしてフォーマットすることをお勧めします) – SamB

+0

エラースタックトレースを添付しました。 –

答えて

1

いくつか入ってくるデータのchunked transfer codingと間違って何かがありますように見えます。おそらく、クライアントに問題があるか、途中のどこかにプロキシがあります。

関連する問題