3

その下にApacheSlingがあるコンテンツリポジトリ(Adobe CQ5)を使用しています。JSPの代わりにFreeMarkerを使用してWebページをレンダリングしたいのですが。

それを機能させるには、Slingソースコードのコントリビューション部分にあるOSGi Freemarker拡張機能をSlingにアップロードする必要がありますか、それとも代わりにOSGiバージョンのFreemarkerをアップロードする必要がありますか?どちらのjarファイルもインターフェースjavax.script.ScriptEngineFactoryを実装しているため、どちらを使用するか、両方をアップロードするかはわかりません。

4

2 に答える 2

5

次のようにして、FreemarkerをCQ5.3で動作させることができました。

  1. svncheckouthttp ://svn.apache.org/repos/asf/sling/trunkスリングからソースを取得します
  2. contrib / scripting / freemarkerに移動し、FreemarkerScriptEngine.javaからすべてのロギングおよびslf4j参照を削除します-NoClassDefFoundExceptionが原因で500エラーがスローされます-CQ5とFreemarkerに含まれるslf4jのバージョンの間に競合があると思います(私はしませんでした何が悪かったのかを掘り下げる)
  3. ビルドしてインストールすると、バンドルの下のSlingコンソールと「スクリプトエンジン」ページに表示され、.ftlスクリプトを使用できるようになります。

CQ5内にバンドルを作成し、コードをインポートして、ストックfreemarker.jarをバンドルに追加することで、少し異なる方法で行いましたが、基本的に同じことなので、これも機能するはずです。

私が抱えていた問題は、スクリプトエンジンが一覧表示されても、ログによって実行できなくなることでした。そのため、ログとslf4jをエンジンから削除する必要があります。

于 2012-01-05T14:12:16.550 に答える
2

FreemarkerのOSGiバージョンについてはわかりません。Slingのために特別にFreemarkerの独自のバンドルを作成しました。FreemarkerのOSGiバージョンの使用に成功した場合は、お知らせください;-)

テストは簡単です。Webコンソールからバンドルをインストールし、Webコンソールの構成ステータスでサポートされているスクリプトエンジンを確認するだけです。そこにFreemarkerEngineがリストされている場合は、動作するはずです。

于 2011-09-23T09:30:27.060 に答える