我正在使用下面有Apache吊索的内容存储库(Adobe CQ5)。我想使用freemarker而不是JSP渲染网页。

为此,我应该将OSGI FreeMarker扩展名上传到吊索上,这可以在吊索源代码的贡献部分中找到,还是应该上传freemarker的OSGI版本?两种罐子都实现了javax.script.scriptEngineFactory接口,因此我不知道要使用哪个或同时上传。

有帮助吗?

解决方案

我设法通过执行以下操作使FreeMarker在CQ5.3上工作:

  1. 从SVN结帐获取来源 http://svn.apache.org/repos/asf/sling/trunk 吊索
  2. 转到contry/脚本/freemarker,然后从freemarkerscriptengine.java中删除所有日志记录和SLF4J参考 - 由于NoclassDeffoundException,它引起了500个错误 - 我认为CQ5与freemarker中包含的SLF4J之间存在冲突(我didn'''didn''''' t挖找出出了什么问题)
  3. 构建并安装,它应在捆绑包和“脚本引擎”页面下出现在吊索控制台中,现在让您现在使用.ftl脚本。

我通过在CQ5中创建捆绑包,导入代码并将库存freemarker.jar添加到捆绑包中,从而做出了不同,但是这基本上是同一件事。

我遇到的问题是脚本引擎确实被列出,但记录阻止它无法运行,这就是为什么您需要从引擎中删除LOG&SLF4J的原因。

其他提示

我不知道 OSGI版本的freemarker;我们专门为吊索创建了自己的自由标志物。如果您成功使用 OSGI版本的freemarker 让我们知道;-)

测试很容易:只需通过Web控制台安装捆绑包,然后在Web控制台中检查支持的脚本引擎 配置状态. 。如果您看到那里列出的自由标记引擎,则应该有效。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top