сценариев в Java - JavaScript из файла класса на стороне сервера в Java 1.5 - PullRequest
0 голосов
/ 13 июня 2009

У меня есть три типа запросов get , которые доставляются в файл class в веб-приложении с мобильного устройства. Поскольку мобильное устройство не предоставляет файлы cookie, попадание в файл журнала имеет только

in.ter.nal.ip   ser.ver.i.p:port    2009-06-05  09:14:44    GET /applicationname/mobiledevicexml    reqtype=login&userid=xx###  200 87  -   MercuryMobile/1.0 CFNetwork/342.1 Darwin/9.4.1  cookieArrayLength=0;

Если я могу создать экземпляр javascript в моем файле класса и сгенерировать вызов функции javascript для urchinTracker () из файла класса, я могу заменить этот бесполезный cookieArrayLength = 0; с некоторыми полезными данными urchin может читать из файла журнала аналитические отчеты. Мы смотрели на скриптинг в Java с Rhino ; Книжная полка Safari имеет:

Сценарии в JavaTM: Языки, Каркасы и узоры

, который сразу же помог нам продемонстрировать, что мы можем запускать javascript в файлах классов - это работает "из коробки" на Java 6.

Кто-нибудь знает какие-либо ресурсы для написания скриптов с Rhino на Java 1.5 или 1.4?

В качестве альтернативы приветствуются любые предложения по запуску javascript из java 1.5.

Ответы [ 3 ]

2 голосов
/ 13 июня 2009

Пакет Java Scripting API (javax.scripting) был представлен в Java 6, поэтому он не будет доступен в Java 1.4 или 5. В качестве установки по умолчанию Java SE 6 поставляется с урезанным версия Mozilla Rhino с интерфейсом через javax.scripting.

Однако Mozilla Rhino сама по себе не требует Java 6. Со страницы требований:

Последние версии Rhino имеют только был протестирован с JDK 1.4 и выше. Старые версии поддерживают JDK уже на ранних этапах как 1.1.

Поэтому, чтобы использовать Rhino, кажется, что Java 1.4 на самом деле достаточно.

Что касается ресурсов, документация для Rhino , похоже, содержит много информации. В частности, раздел Embedded Rhino может быть полезен для просмотра работы сценариев.

Конечно, отсутствие пакета javax.scripting означает, что для взаимодействия с самим Rhino потребуется использование API Rhino, а не API-интерфейса Java 6 для сценариев, но я предполагаю, что функциональность будет довольно похоже. Единственный недостаток, который я вижу, это то, что если в будущем Java 6 будет поддерживаться на целевой платформе и / или с использованием другого языка, может потребоваться переписать, чтобы использовать Java Scripting API, а не напрямую поддерживать Rhino.

1 голос
/ 13 июня 2009

[Я отправляю ответ, потому что у меня недостаточно очков, чтобы оставить комментарий к самому вопросу.]

Вы уверены, что функция urchinTracker () будет работать за пределами веб-браузера? Запуск интерпретатора JavaScript Rhino (что не так уж сложно) будет недостаточным, если функция использует различные объекты браузера, такие как объектная модель документа (DOM) или XmlHttpRequest.

Я предлагаю вам хотя бы отсканировать внутреннюю часть функции urchinTracker (), чтобы убедиться, что это так.

0 голосов
/ 13 июня 2009

См. JavaScript на стороне сервера для получения списка проектов, выполняющих JavaScript на стороне сервера.

Для вашего использования использование Rhino похоже на путь.

...