2016-02-11 65 views
6

私は〜5回以上のリクエストを実行すると予想されるサービスを持っています。このサービスはApache AsyncHttpClientに依存します。数分おきにクライアントが何らかの原因でヒットした場合java.lang.IllegalStateException:要求を実行できません。 I/O原子炉のステータス:停止。クライアントへのすべての要求は、同じ例外メッセージで失敗します。サービスが再開されると、このサイクルが繰り返されます。java.lang.IllegalStateException:要求を実行できません。 I/O reactor status:STOPPED

リクエスト実行の失敗が意外にも、failed()メソッドへのコールバックを引き起こさないので、この問題をデバッグするのは本当に難しいです。

HTTPCORE-370HttpCore NIO 4.3.2で同様の問題を解決しました。しかし、この問題を見て コモンズ-HTTPClientの-3.1.jar httpasyncclient-4.1.1.jar httpcore-4.4.4.jar httpcore-NIO-4.4.4.jar

- 私は、次のバージョンを使用しています。 本当にありがとうございます。

私は自分のアプリケーションでこの同じ例外に対処してきた
+0

遅くとも、この問題の解決策を見つけましたか? – dav1d

答えて

0

、と私は最終的に、このポストから役に立つ提案を発見した - http://httpcomponents.10934.n7.nabble.com/I-O-reactor-status-STOPPED-td29059.html

あなたが反応器にI/Oの#getAuditLog()メソッドを使用することができます がどのような例外によって終了するのかが正確にわかります。

あなたのConnectionManagerのIOReactorへの参照を保持した場合、あなたは実際の問題への洞察を得るために、このメソッドを呼び出すことができます。

http://hc.apache.org/httpcomponents-core-4.4.x/httpcore-nio/apidocs/org/apache/http/impl/nio/reactor/AbstractMultiworkerIOReactor.html#getAuditLog()

は、私は自分のコードで、信じられないほど愚かな何かをやっていたが判明。しかし、監査ログを読むまではわかりませんでした。

+0

同じ問題がありますが、理由を教えてもらえますか? – afei

+0

私の問題は私のコードのビジネスロジックと関係していました。私は同じGoogle Guava StopWatchを2回停止しようとしていました。 IOReactorの監査ログ内で見つけたものは、あなたが書いたコードに非常に固有のものでしょう。 – Madpony

関連する問題