クライアントでJackson
を使用していましたが、Jerseyですべて正しく構成されていましたが、テストクラスで実行したとき、私たちのSTG環境に配備されたときに持っている特定のホストに接続し、常に読み取りタイムアウト例外をスローします。ジャージークライアントは読み取りタイムアウトを与えますが、Apache HTTPクライアントは通常通り接続します
はまた、私はcurl
を使用して接続することができます。しかしHTTPClientのに切り替えたときに、それが正常に働いていたので、問題は、私たちの環境ではないことを知っています。
これは私達が私達のジャージークライアントを作成する方法である:
Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.property(ClientProperties.CONNECT_TIMEOUT,5000)
.property(ClientProperties.READ_TIMEOUT,15000)
.build();
ここでの唯一の違いは、アプリの流れであり、また、接続に影響を与える可能性の流れの中で起こる大きな変化は、その前にどこかにあります別のクラスジャージークライアントを呼び出すと、システムの設定でプロキシを設定します。
System.setProperty("http.proxyHost",strProxyHost);
System.setProperty("http.proxyPort",strProxyPort);
System.setProperty("https.proxyHost",strProxyHost);
System.setProperty("https.proxyPort",strProxyPort);
我々はHTTPClientのを使用して正常に接続を確立することができますしかし:
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setConnectionTimeout(5000);
params.setSoTimeout(10000);
HttpConnectionManager manager = new SimpleHttpConnectionManager();
manager.setParams(params);
HttpClient httpClient = new HttpClient(manager);
このアプリケーションの一部がレガシーでバージョンを更新できないため、HTTPClient 3を使用していますが、正常に動作します。
ジャージーとのこの接続の問題を引き起こす原因は何ですか?ジャージーが接続しようとしている時に何かグローバルなものがありますか?それは、これらのシステム変数が設定されている場合は、ジャージーは、この設定されたプロキシを介してすべての要求を送信することを意味し
System.setProperty("http.proxyHost",strProxyHost);
System.setProperty("http.proxyPort",strProxyPort);
System.setProperty("https.proxyHost",strProxyHost);
System.setProperty("https.proxyPort",strProxyPort);
- デフォルトで
これを無視できますか? – engma