2011-06-10 6 views
3

아래에 Apache Sling이있는 컨텐츠 저장소 (Adobe CQ5)를 사용하고 있습니다. JSP 대신 FreeMarker를 사용하여 웹 페이지를 렌더링하고 싶습니다.Apache Sling에서 FreeMarker 사용

슬링 소스 코드의 기여 부분에있는 OSGi Freemarker 확장을 Sling에 업로드해야합니까? 그렇지 않으면 Freemarker의 OSGi 버전을 대신 업로드해야합니까? 두 항아리 모두 javax.script.ScriptEngineFactory 인터페이스를 구현하므로 어느 것을 사용해야할지 모르거나 둘 다 업로드 할 수 없습니다.

답변

5

내가 프리 마커을 수행하여 CQ5.3 작업을 얻을 수 있었다 다음

  1. 가있는 contrib/스크립트/프리 마커로 이동 SVN 체크 아웃 http://svn.apache.org/repos/asf/sling/trunk 슬링에서 소스를 얻을 모든 로그를 제거하고 FreemarkerScriptEngine.java에서 참조하는 slf4j - NoClassDefFoundException으로 인해 500 개의 오류가 발생 함 - Freemarker에 포함 된 slf4j와 CQ5 사이에 충돌이 있다고 생각합니다. (잘못된 정보를 찾으려고하지 않았습니다.)
  2. 빌드 설치하면 Sling 콘솔에 번들 및 th로 표시되어야합니다 e '스크립트 엔진'페이지를 열고 .ftl 스크립트를 사용할 수있게합니다.

내가 CQ5 내부의 번들을 만드는 코드를 가져오고 번들로 freemarker.jar 주식을 추가하지만 기본적으로 같은 일이 같은이 너무 작동합니다 의해 약간 다르게했다.

내가 가진 문제는 스크립트 엔진이 나열되지만 로깅이 실행되지 않으므로 엔진에서 & slf4j 로그를 제거해야하는 이유입니다.

2

나는 Freemarker의 OSGi 버전 에 대해 모르겠다; 우리는 Sling을 위해 특별히 Freemarker를 묶어서 만들었습니다. 당신은 프리 마커은 OSGi 버전을 사용하여 성공을하면 우리가 ;-)

테스트 알려 쉽습니다 : 그냥 웹 콘솔을 통해 번들을 설치하고 웹 콘솔 구성 상태에서 지원되는 스크립트 엔진을 확인합니다. Freemarker Engine이 거기에 나열되어 있으면 작동해야합니다.