2016-11-04 23 views
2

クライアントプロキシを使用して反応的なrx Javaクライアントを構築する方法はありますか?公式ドキュメント:https://jersey.java.net/documentation/2.23.2/rx-client.htmlは、WebTargetまたはクライアントから手動でrxclientを構築する例を提供しています。これは、特にリソースインタフェースをすでに作成している場合は、非常に面倒です(ループ内でクエリパラメータを追加することを想像してください)。 RxWebTargetをWebResourceFactoryに渡すだけでは機能しません。バージョン2.26 WebResourceFactoryのソースコードを見てみるとWebResourceFactoryを使用してプロキシを構築したRxJavaジャージクライアント

答えて

0
ClientConfig config = new ClientConfig(); 
config.connectorProvider(new ApacheConnectorProvider()); 
config.property(ClientProperties.PROXY_URI, "xxxx:xxxx"); 
Client client = JerseyClientBuilder.newClient(config); 

return RxObservable.from(client).register(loggingFilter); 
+0

HttpProxyを意味するのではなく、WebResourceFactory https://github.com/jersey/jersey/blob/master/ext/proxy-client/src/main/java/を使用して、サーバーサイドのjaxrsインターフェイスから直接作成されたプロキシクライアントです。 org/glassfish/jersey/client/proxy/WebResourceFactory.java – dziadeusz

0

、WebResourceFactoryによって作成されたジャージープロキシクライアントは、反応性、クライアントのコーディングとの互換性はありません。この2行のコードは、反応性のスタイルを誘発rx()コールのための任意の点なしのワイヤを介して通話を呼び出す:

  result = builder.method(httpMethod, Entity.entity(entity, contentType), responseGenericType); 
     } else { 
      result = builder.method(httpMethod, responseGenericType); 

あなたはWebResourceFactoryクラスがひどく大きなまたは複雑ではありませんとしての能力を追加することを検討することがあります。

Jersey 2.26では、JerseyClientインスタンスにExecutorServiceを割り当てることができます。このExecutorServiceは、Callable <>子孫内からJerseyプロキシクライアントを呼び出すことで並行性の管理を支援することができます。

関連する問題