Frage

Ich verwende ein Content -Repository (Adobe CQ5), das darunter Apache -Slings ist. Ich möchte Webseiten mit Freemarker anstelle von JSP rendern.

Damit dies funktioniert, sollte ich die OSGI Freemarker -Erweiterung in Sling hochladen, die im Beitragsteil des Sling -Quellcodes zu finden ist, oder sollte ich stattdessen eine OSGI -Version von Freemarker hochladen? Beide JARs implementieren die Schnittstelle javax.script.ScriptengineFactory, damit ich nicht weiß, welches ich verwenden soll, oder um beide hochzuladen.

War es hilfreich?

Lösung

Ich habe es geschafft, Freemarker an CQ5.3 zum Arbeiten zu bringen, indem ich Folgendes machte:

  1. Holen Sie sich die Quelle von SVN Checkout http://svn.apache.org/repos/asf/sling/trunk Schlinge
  2. Gehen Sie zum Beitrag/Scripting/Freemarker und entfernen Sie alle Protokollierungs- und SLF4J -Referenzen von Freemarkerscriptengine.java - Es wirft einen 500 -Fehler aufgrund von NoclassDeffoundException aus - ich glaube, es gibt einen Konflikt zwischen CQ5 und einer Version von SLF4J, die in Freemarker enthalten ist (ich habe es getan. T graben, um herauszufinden, was los war)
  3. Erstellen Sie es und installieren Sie es, es sollte in der Sling -Konsole unter Bundles und auf der Seite "Skript -Engines" angezeigt werden, und lassen Sie Sie jetzt .ftl -Skripte verwenden.

Ich habe es etwas anders gemacht, indem ich das Bundle in CQ5 erstellt, den Code importiert und einen serienfreundlichen Freemarker in das Bundle hinzufügte, aber dies sollte auch funktionieren, da es im Grunde dasselbe ist.

Das Problem, das ich hatte, war, dass die Skript -Engine aufgelistet wird, aber die Protokollierung verhindert, dass sie ausführt. Deshalb müssen Sie das Protokoll und das SLF4J aus dem Motor entfernen.

Andere Tipps

Ich weiß nichts über das OSGI -Version von Freemarker; Wir haben unsere eigene Bündelung von Freemarker speziell für die Schlinge erstellt. Wenn Sie Erfolg haben, verwenden Sie die OSGI -Version von Freemarker Lass uns wissen ;-)

Das Testen ist einfach: Installieren Sie das Bundle einfach über die Webkonsole und überprüfen Sie die unterstützten Skriptmotoren in der Webkonsole Konfigurationsstatus. Wenn Sie den dort aufgeführten Freimaurer -Motor sehen, sollte er funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top