从vanilla Adob​​e CQ5生成XML的好方法是什么?

时间:2013-01-31 18:41:10

标签: java xml jaxb apache-felix cq5

我当前的实现使用JSP生成XML,但是我正在使用的不同记录类型的数量已经增加,并且JSP模板的数量变得难以维护。

所以我使用javax.xml.bind编写了一个解决方案但很快发现代码会编译但不能在OSGi中运行。简而言之,有一个本机编译的依赖项 - com.sun。* - 默认情况下不包含在Felix引导类路径中。包含此依赖关系是修改sling.properties以在org.osgi.framework.bootdelegation配置行中包含com.sun。*的问题。但是,我在大型企业生产环境中工作,因此管理额外配置的想法并不理想。

所以,我的问题是:有没有更好的方法在Adobe CQ中以编程方式生成自定义XML?堆栈中是否有不同的JAXB impl,而不是javax.xml.bind?是否有另一种XML编组API更符合CQ / Felix?

3 个答案:

答案 0 :(得分:2)

我还没有得到任何具体的文档,但是可以在不更改Sling启动委派的情况下包含com.sun。*。

我已经在pom.xml中使用CQC中的CXF作为OSGi服务进行了演示项目。它是maven-bundle-plugin中的<dependency><Import-Package>

整个项目可以在https://github.com/antonyh/cq5-cxf的GitHub上获得 - 它可以在不改变CQ5.4 / CQ5.5上的引导委派的情况下构建,安装和工作。

答案 1 :(得分:1)

CQ5.5 osgi包包括org.apache.cocoon.cocoon-xml,它导出包:

org.apache.cocoon.xml.dom,version=2.0.0
org.apache.cocoon.xml.sax,version=2.0.0

可以在其他osgi包或组件jsp文件中使用。

答案 2 :(得分:0)

对于“vanilla”XML,您只需在内容URL中添加.xml扩展名,即可输出内容的XML表示形式。这可以通过HTTP获取。