我当前的实现使用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?
答案 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获取。