Вызовите 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
и поместите свою собственную логику там.
Конечно, вы все еще можете утверждать, что наличие двух контроллеров - плохой стиль.:)