1

私はMozillaRhinoを使用してJavaScriptサーバーアプリケーションを作成しています。Webに簡単にアクセスできるようにプロジェクトにHttpClientクラスを含めたいのですが、RhinoにHttpClientJARファイルをロードさせるようにEclipseプロジェクトを構成する方法がわかりません。

js.jar(Rhinoから) Eclipseのプロジェクトのビルドパスに追加httpclient-4.0.1.jarし、実行構成でRhinoのjs.jar(検出された)からMainクラスを指定し、JavaScriptファイルで基本的にこれを行います。

importPackage(org.apache.http.client.methods);
var get = new HttpGet("<some url returning json data>");
get.execute();
print(get.getResponseBodyAsString());

これを言うのは失敗します:

Exception in thread "Thread-0" org.mozilla.javascript.EcmaError: ReferenceError: "HttpGet" is not defined.

どうしてこんなに難しいの?私は根本的に間違ったことをしているに違いありません。

4

3 に答える 3

3

クラスパスが正しく設定されていると、コードが機能しない理由がわかりません。クラスを明示的にロードして、実際に使用できるかどうかを確認することをお勧めします。そうしないと、クラスパスにクラスが含まれていないように見えます。

println( java.lang.Class.forName( 'org.apache.http.client.methods.HTTPGet' ) );

Rhinoは、問題や余分な作業なしに、外部jarファイルからクラスにロードできるはずです。

于 2010-01-16T03:52:18.610 に答える
1

httpclient-4.0.1.jarさて、問題は、クラスパスとプロジェクトのビルドパスの両方にファイルの複数の参照があることであるように見えました。それ以外に、依存するいくつかの依存関係をhttpclient-4.0.1.jar省略したようです。クラスパスをクリーンアップし、必要なすべてのjarをプロジェクトに追加した後、期待どおりにすべてが見つかるようになりました。

助けてくれてありがとう!

于 2010-01-16T12:08:29.747 に答える
0

httpclient-4.0.1.jarプログラムを実行するときに、それがクラスパスにあることを確認しましたか?

于 2010-01-16T03:29:09.483 に答える