Вызовите js webscript из Java webscript в Alfresco

У меня проблема. Мне нужно выполнить js webscript из Java webscript. Я знаю, как это сделать:

req.getRuntime().getContainer().getRegistry().getWebScript("com/home/testJs/testJs.get").execute(req, res)

, но как построить новый объект WebScriptRequest? Мне нужно сделать это для переписать путь запроса. Это действительно проблема для меня. Спасибо.

2 ответа

Решение

В общем, вы должны использовать WebScriptRequestURLImpl. Без каких-либо других деталей, трудно идти глубже.

Тем не менее, в общем, это плохая идея, чтобы пройти еще один HTTP-вызов к себе, чтобы решить вашу проблему, это в основном признак плохой модульности или отсутствия повторного использования кода.

Я бы предпочел переместить кусок кода, который обычно используется в потоках веб-сценариев JS и Java, в Action, который можно вызывать из обоих мест без необходимости перепаковывать входные параметры или, что еще хуже, отправлять их через HTTP.

Конечно, Скуро прав, говоря, что это плохая идея - дважды проходить через слой HTTP.

Но на самом деле, выполнение обоих, контроллера сценария и java-метода поддерживается Alfresco прямо из коробки - без отвратительных взломов и без прохождения всего уровня HTTP дважды.

Вы можете сделать это:

Поместите код вашего скрипта в соответствующий файл.js.

Убедитесь, что ваш класс Java является подклассом DeclarativeWebScriptпереопределить executeImpl и поместите свою собственную логику там.

Конечно, вы все еще можете утверждать, что наличие двух контроллеров - плохой стиль.:)

Другие вопросы по тегам