Pregunta

Estoy usando un repositorio de contenido (Adobe CQ5) que tiene Sling Apache debajo. Me gustaría renderizar páginas web con Freemarker en lugar de JSP.

Para que eso funcione, ¿debo cargar la extensión de marca freem de OSGI a Sling, que se encuentra en la parte de contribución del código fuente de Sling, o debería cargar una versión OSGI de Freemarker? Ambos frascos implementan la interfaz javax.script.scriptEngineFactory, por lo que no sé cuál usar o cargar ambos.

¿Fue útil?

Solución

Logré hacer que Freemarker trabajara en CQ5.3 haciendo lo siguiente:

  1. Obtenga la fuente de SVN Checkout http://svn.apache.org/repos/asf/sling/trunk honda
  2. Vaya a Contrib/Scripting/Freemarker y elimine todas las referencias de registro y SLF4J de FreemarkerScriptEngine.java: lanza un error 500 debido a NoclassDeffoundException: creo que hay un conflicto entre CQ5 y una versión de SLF4J incluida en Freemarker (no sí ' D cava para averiguar qué estaba mal)
  3. Construya e instalarlo, debería aparecer en la consola Sling en Bundles y en la página de 'Motores de script', y le permite usar scripts .ftl ahora.

Lo hice de manera ligeramente diferente creando el paquete dentro de CQ5, importando el código y agregando un marcador libre. JAR en el paquete, pero esto también debería funcionar, ya que es básicamente lo mismo.

El problema que tuve fue que el motor de script se enumera, pero el registro evita que se ejecute, por eso necesita eliminar el registro y SLF4J del motor.

Otros consejos

No sé sobre el Versión de OSGI de Freemarker; Creamos nuestro propio agrupador de marca gratuito especialmente para honda. Si tiene éxito usando el Versión de OSGI de Freemarker Haznos saber ;-)

Las pruebas son fáciles: simplemente instale el paquete a través de la consola web y verifique los motores de script compatibles en la consola web Estado de configuración. Si ve el motor Freemarker enumerado allí, debería funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top