1

JavaLoaderを使用して Java ( HttpAsyncClient ) クラスを ColdFusion にロードしようとしています。

client = loader.create("org.apache.commons.HttpAsyncClient")

である参照をどのように知ることができorg.apache.commons.HttpAsyncClientますか? jarファイルを開いてディレクトリ構造をたどると、参照パスが得られると思いました。しかし、これは真実ではないと思います。

HttpAsyncClient を使用しようとしていますが、読み込めません:

client = loader.create("org.apache.commons.HttpAsyncClient")クラスが見つからないというエラーを返します。

Loader は、Java クラスを CF サーバーにロードするJavaLoaderへの参照です。

4

2 に答える 2

2

コールドフュージョンは知りません。クラスを含むパッケージだけでなく、おそらくクラスへのフルパスを指定する必要があります。

例によると、完全なパッケージとクラス名は次のとおりです: org.apache.http.nio.client.HttpAsyncClient

また、javadoc を使用してパッケージ名とクラス名を確認することもできます: http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/index.html

このようなインターフェイスで何かを非同期にするのは、おそらく残忍です。最初に同期バージョンを試すことをお勧めします。

編集

この同期の例を CF に適応させてみます: http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientWithResponseHandler.java

HttpGet をインスタンス化するときは、次の例のように、追加のパラメーターを init() に渡す必要があります。 -Java

于 2011-10-13T20:23:10.877 に答える
2

車輪を再発明するのではなく、Mark Mandel の AsyncHTTP ライブラリのような既存のツールを試してみませんか?

更新:コメントから、そのツールは ACF のみです。したがって、 Asynchronous HTTP Exchangeの例DefaultHttpAsyncClientに示されているように、具象クラスを使用してみてください。

于 2011-10-13T21:15:11.153 に答える