3

Java ベースのサービスを実行すると、予期しない SSL 例外「ソケットが閉じられています」... または「データが非データ状態で受信されました」がスローされることがあります。jvmArgs: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5050 を追加してリモート デバッガーを構成し、実行すると、この例外はスローされません。このオプションについて、サービスの動作を変更するものはありますか?

例外:

javax.net.ssl.SSLProtocolException: Data received in non-data state: 6
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1061)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:884)
    at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:191)
    at org.apache.http.impl.io.ContentLengthInputStream.read(ContentLengthInputStream.java:164)
    at org.apache.http.conn.EofSensorInputStream.read(EofSensorInputStream.java:138)
    at java.security.DigestInputStream.read(DigestInputStream.java:161)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at com.amazonaws.services.s3.internal.ChecksumValidatingInputStream.read(ChecksumValidatingInputStream.java:97)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at javax.crypto.CipherInputStream.getMoreData(CipherInputStream.java:103)
    at javax.crypto.CipherInputStream.read(CipherInputStream.java:224)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at java.io.FilterInputStream.read(FilterInputStream.java:107)
    at <mypackagenameremovedforanonymity>.GetObjectActivity.enact(GetObjectActivity.java:118)

コンテキスト: SSL ソケットをラップする InputStream から読み取っています

4

3 に答える 3

4

これは、AWS SDK とガベージ コレクションで他の人が見た問題である可能性があります。私は同じ種類の問題を抱えていました。S3 入力ストリームからの読み取りは、さまざまなソケット/SSL エラーで失敗し、それを分離またはデバッグしようとすると、問題は解消されました。入力ストリームがそれを保持していなかったため、S3 クライアント接続がガベージ コレクションを取得していたことが判明しました。次のリンクを見つけて、問題を解決しました。

https://forums.aws.amazon.com/thread.jspa?messageID=438171

リック

PS明確にするために、上記のリンクはAndroidで実行するためのものですが、問題と解決策はすべてのプラットフォームで一般的です(Windowsで実行されているJDK 7で遭遇しました)。

于 2013-08-29T18:41:29.233 に答える
0

エラーData received in non-data stateがスローされた場合、ソケットの出力ストリームが閉じられているが、入力ストリームが閉じられておらず、データの送受信を継続し、ソケットも閉じられていないかどうかを確認します。最後にソケットと一緒にソケットのストリームを閉じると、問題の解決に役立つ場合があります。

于 2016-07-22T08:12:20.160 に答える