jerseyをRESTクライアント(バージョン2.22.1)として使用するカスタム機能を実装しています。特定のHTTP呼び出しに対しては、すべてがうまくいくようですが、ubuntuで実行している場合にのみ、「エラー:サーバーへの書き込み」が発生します。"エラー:サーバに書き込む" - ubuntuでのみ発生する
私の2台のubuntu開発用PCでユニットテストを実行しているときにエラーが発生します。私の開発PCは両方のOracle JDKとUbuntuの16.04です:Windowsマシンから同じテストを実行
~$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
、私にエラーを与えません。私のWindowsマシン上:
java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
完全なエラーのスタックトレースは次のとおりです。私は、エラーのために2つの原因を想定することができます
javax.ws.rs.ProcessingException: java.io.IOException: Error writing to server at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:437) at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:326)
....
Caused by: java.io.IOException: Error writing to server at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:666) at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:678) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394) at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
... 40 more
:
- JVMのバージョン
- の違い2つのオペレーティングシステム間の異なるネットワーク設定
このエラーは、大きなHTTP負荷が発生した特定の要求に発生します。さまざまな投稿の多くの同僚が、これが大規模なhttpリクエスト中に発生することを示唆していますが、解決策を提案している投稿やUbuntuに具体的に関連する投稿は見つかりませんでした。
ヒント
このような機能に影響するネットワークパラメータはどれですか?どのように私はそれらを変更/適応することができますか?
具体的なjvm設定が必要ですか?