首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Apache Sling中使用FreeMarker

在Apache Sling中使用FreeMarker
EN

Stack Overflow用户
提问于 2011-06-11 00:52:36
回答 2查看 1.2K关注 0票数 3

我使用的是一个包含Apache Sling的内容存储库(Adobe CQ5)。我想用FreeMarker而不是JSP来呈现网页。

为此,我应该将OSGi Freemarker扩展上传到Sling,这可以在Sling源代码的贡献部分找到,还是应该上传Freemarker的OSGi版本?这两个jars都实现了接口javax.script.ScriptEngineFactory,所以我不知道该使用哪一个,还是同时上传两个。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-05 22:12:17

通过执行以下操作,我成功地让Freemarker在CQ5.3上工作:

  1. 从svn checkout http://svn.apache.org/repos/asf/sling/trunk Sling
  2. 获取源代码转到contrib/scripting/freemarker并从FreemarkerScriptEngine.java中删除所有日志记录和slf4j引用-由于NoClassDefFoundException,它抛出了一个500错误-我认为CQ5和Freemarker中包含的slf4j版本之间存在冲突(我没有深入挖掘以找出问题所在)
  3. 构建并安装它,它应该出现在sling控制台的捆绑包下和'script engines‘页面中,现在让您使用.ftl脚本。

我的做法稍有不同,在CQ5中创建了包,导入了代码,并在包中添加了一个普通的freemarker.jar,但这也应该是可行的,因为它基本上是一样的。

我遇到的问题是脚本引擎确实被列出了,但是日志记录阻止了它的运行,这就是为什么你需要从引擎中删除日志& slf4j。

票数 5
EN

Stack Overflow用户

发布于 2011-09-23 17:30:27

我不知道Freemarker的OSGi版本;我们专门为Sling创建了自己的Freemarker绑定。如果您成功使用了OSGi版本的Freemarker,请让我们知道;-)

测试很简单:只需通过Web控制台安装包,并在Web控制台配置状态中检查受支持的脚本引擎。如果你看到那里列出的Freemarker引擎,它应该可以工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6309615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档