Использование FreeMarker с Apache Sling - PullRequest
3 голосов
/ 10 июня 2011

Я использую репозиторий контента (Adobe CQ5), под которым находится Apache Sling. Я хотел бы отображать веб-страницы, используя FreeMarker вместо JSP.

Чтобы это работало, я должен загрузить расширение OSGi Freemarker в Sling, которое можно найти в разделе исходного кода Sling, или я должен вместо этого загрузить версию OSGi Freemarker? Оба jar реализуют интерфейс javax.script.ScriptEngineFactory, поэтому я не знаю, какой из них использовать, или загрузить оба.

Ответы [ 2 ]

5 голосов
/ 05 января 2012

Мне удалось заставить Freemarker работать на CQ5.3, выполнив следующие действия:

  1. получить исходный код из svn checkout http://svn.apache.org/repos/asf/sling/trunk sling
  2. перейти к вкладу/ scripting / freemarker и удалите все ссылки на журналы и slf4j из FreemarkerScriptEngine.java - он выдает ошибку 500 из-за NoClassDefFoundException - я думаю, что существует конфликт между CQ5 и версией slf4j, включенной в Freemarker (я не копал, чтобы найтичто не так)
  3. соберите и установите его, он должен появиться в консоли Sling под связками и на странице 'обработчиков сценариев', и теперь вы сможете использовать скрипты .ftl.

Я сделал это немного по-другому, создав пакет внутри CQ5, импортировав код и добавив в него пакет freemarker.jar, но это тоже должно сработать, поскольку это в основном то же самое.

У меня была проблемачто обработчик сценариев отображается в списке, но ведение журнала не позволяет ему работать, поэтому вам нужно удалить log & slf4j издвигатель.

2 голосов
/ 23 сентября 2011

Я не знаю о OSGi-версии Freemarker ;Мы создали наш собственный пакет Freemarker специально для Sling.Если у вас все получится, используя версию Freemarker для OSGi , сообщите нам об этом; -)

Тестирование очень просто: достаточно установить пакет через веб-консоль и проверить наличие поддерживаемых скриптов в Интернете.Консоль Состояние конфигурации .Если вы видите там движок Freemarker, он должен работать.

...