Как получить доступ к внешним файлам JAR из JavaScript, используя Rhino и Eclipse? - PullRequest
1 голос
/ 16 января 2010

Я использую Mozilla Rhino для написания серверного приложения на JavaScript.Я хотел бы включить классы HttpClient в свой проект для легкого доступа к сети, но я не могу понять, как настроить мой проект Eclipse, чтобы Rhino загружал файл JAR HttpClient.1003 * (из Rhino) и httpclient-4.0.1.jar в путь сборки моего проекта в Eclipse, и в конфигурации моего запуска я указал класс Main из js.jar Rhino (который он находит), и в своем файле 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.

Как это может быть так сложно?Должно быть, я делаю что-то в корне неправильно.

Ответы [ 3 ]

3 голосов
/ 16 января 2010

Я не понимаю, почему ваш код не должен работать, если ваш classpath настроен правильно. Я бы посоветовал попытаться загрузить класс явно, чтобы увидеть, действительно ли он доступен, в противном случае у вас, кажется, нет его в вашем classpath:

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

Rhino должен иметь возможность загружать в классы из внешних файлов JAR без проблем или дополнительной работы.

1 голос
/ 16 января 2010

Хорошо, похоже, проблема в том, что у меня было несколько ссылок на файл httpclient-4.0.1.jar, как в моем пути к классам, так и в пути сборки моего проекта. Кроме этого, я, кажется, пропустил пару зависимостей, от которых зависит httpclient-4.0.1.jar. После очистки моего пути к классам и добавления всех необходимых фляг в мой проект теперь кажется, что все найдено, как и ожидалось.

Спасибо за вашу помощь, ребята!

0 голосов
/ 16 января 2010

Вы убедились, что httpclient-4.0.1.jar находится в пути к классам при запуске программы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...