我正在使用Mozilla Rhino编写JavaScript服务器应用程序。我想在我的项目中包含HttpClient类来轻松访问Web,但我无法弄清楚如何配置我的Eclipse项目以使Rhino加载HttpClient JAR文件。
我已将js.jar
(来自Rhino)和httpclient-4.0.1.jar
添加到Eclipse中我项目的构建路径中,在我的运行配置中,我已经从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.
这怎么这么难?我必须做一些根本错误的事情。
答案 0 :(得分:3)
如果您的类路径设置正确,我不明白为什么您的代码不起作用。我建议尝试显式加载该类以查看它是否真的可用,否则您似乎没有在类路径中使用它:
println( java.lang.Class.forName( 'org.apache.http.client.methods.HTTPGet' ) );
Rhino应该能够从外部jar文件加载到类而不会出现问题或额外的工作。
答案 1 :(得分:1)
好的,问题似乎是我在我的类路径和项目的构建路径中有多个httpclient-4.0.1.jar
文件的引用。除此之外,我似乎遗漏了httpclient-4.0.1.jar
依赖的几个依赖项。清理完我的类路径并将所有必要的jar添加到我的项目后,它现在似乎找到了预期的一切。
感谢您的帮助!
答案 2 :(得分:0)
运行程序时,您确定httpclient-4.0.1.jar
在类路径中吗?