問題タブ [apache-httpasyncclient]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - PoolingNHttpClientConnectionManager: timeToLive 属性とは何ですか?
timeToLive 属性がどのように機能するかを理解しようとしていますか?
これは、プールから接続を取得したときですか?接続が意図的に閉じられ、プールに返されるまでの時間間隔ですか?
永続的な接続を使用していたクライアントを数秒ごとに閉じたいので、ロードバランサーへのリクエストは数秒ごとに新しいサーバーに送信されます。
apache-httpclient-4.x - Apache HttpComponents CookieStore が Cookie を保存しない
私は HttpComponents 4.5.2 を使用しています。ログインやその他の要求に使用する必要があるため、Cookie を保存しようとしています。アプリケーションがまだ実行されている間、コードは正常に動作しますが、ここでの問題は、アプリケーションを再起動すると、CookieStore に保存されるはずの Cookie がそこにないことです。ここに私が書いたものがあります:
私はHttpComponentsのドキュメントを読みました.Cookieに関するセクション3.5には次のように書かれています:
HttpClient は、CookieStore インターフェイスを実装する永続的な Cookie ストアの任意の物理表現を操作できます。BasicCookieStore と呼ばれるデフォルトの CookieStore 実装は、java.util.ArrayList に基づく単純な実装です。BasicClientCookie オブジェクトに格納されている Cookie は、コンテナー オブジェクトがガベージ コレクションされると失われます。必要に応じて、ユーザーはより複雑な実装を提供できます
だから、クッキーを効果的に保存できる何らかの構造を実装するのはユーザーに任されているのか、それとも何かが欠けているのか疑問に思っています。
scala - スパーク送信の NoSuchMethodError
spark-submit を使用して、依存関係を含む jar を spark に送信しました。私のjarのメインメソッドで、HttpAsyncCliens
インスタンスを作成し、いくつかのリクエストを実行したい(apache http async client library):
例外をスローします。
スレッド「pool-1-thread-1」での例外 java.lang.NoSuchMethodError: org.apache.http.util.Asserts.check(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.http .impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:315) org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:191) at org.apache.http.impl.nio .client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) で java.lang.Thread.run(Thread.java:745) スレッド「メイン」で例外 java.lang.NoSuchMethodError: org.apache.http.util.Asserts .check(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90) org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123) で org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:74) で.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:107) at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:91) at spark.Application$. main(Application.scala:37) at spark.Application.main(Application.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect java.lang.reflect の .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)。Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731) at org.apache.spark.deploy. org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala: 121) org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) で121) org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) で121) org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) で
私のjarにはhttp-core依存関係がないようですが、org.apache.http.util.Asserts.check(ZLjava/lang/String;Ljava/lang/Object;)V
httpクライアントの作成とリクエストの前または後にコードでこのメソッド()を呼び出すことができます:
コードで同じクラスパスからこのメソッドを呼び出すことができるのに、なぜ NoSuchMethodError が発生するのですか?
Apache httpasyncclient v4.1
java - Apache http nio 経由の Elasticsearch REST Java クライアントでの OutOfMemoryError
Elasticsearch REST Java クライアント (Java 7 を使用しているため、通常の Elasticsearch Java クライアントは使用できません) を使用して、elasticsearch サーバーと対話します。これは、約 1.3m のドキュメントの最初のインデックス作成を行おうとしている場合を除いて、すべて正常に機能します。これはしばらく実行されますが、数十万のドキュメントの後、
に続く
ご覧のとおり、Elasticsearch REST クライアントは apache http nio を使用しています。私が奇妙なことに気付いたのは、nio ライブラリがすべてのリクエスト (または接続?) に対してスレッドを作成していることです。上記のログから、スレッド (pool-837116-thread-1) を確認できます。また、I/O ディスパッチャ スレッドの数も増えています。
ただし、ライブ スレッドの総数はそれほど変化していないようです。したがって、スレッドを再利用するのではなく、接続サイクルごとに 1 つ (または実際には 2 つ) の新しいスレッドが作成されるようです。アップロードは基本的に次のとおりです。
1. クライアントを作成する
2. json ボディでリクエストを送信し、クライアントを閉じます
これは正常ですか?Apache nio がスレッドを再利用しないのはなぜですか? これは、elasticsearch REST クライアント、apache nio、または私のコードの問題ですか? 私はrestClientでcloseを呼び出しますが、他に何をすべきかわかりません。
IO Reactor でスレッド数を 1 に設定しようとしました。
しかし、スレッドの再利用に関しては何も変わりませんでした。
java - Apache httpasyncclient を使用して投稿する ArrayStoreException
実際には、クライアントは tomcat 8080 に存在し、REST API は 9090 に存在します。より高い環境に移動すると、URL が異なります。httpasyncclient を使用して REST API への呼び出しが発生していません。Apache ウェブサイト https://hc.apache.org/httpcomponents-asyncclient-dev/examples.htmlからコードをコピーしました
よくわからない、応答で例外を受け取っても呼び出しを成功させる方法
これを修正するための有用な情報は見つかりませんでした。どんな助けでも私の一日を作るでしょう
javadocは言う
Open Declaration java.util.concurrent.ExecutionException 例外をスローして中止されたタスクの結果を取得しようとしたときにスローされる例外です。この例外は、getCause() メソッドを使用して調べることができます。