4

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

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

所以,我的问题是:有没有更好的方法在 Adob​​e CQ 中以编程方式生成自定义 XML?我应该使用的堆栈中是否有不同的 JAXB impl,而不是 javax.xml.bind?是否有另一个对 CQ/Felix 更友好的 XML 编组 API?

4

3 回答 3

2

我还没有这方面的任何具体文档,但可以包含 com.sun.* 而不更改 Sling 引导委托。

我已经在这个pom.xml中使用 CQ5 中的 CXF 作为 OSGi 服务的演示项目完成了它。它是 maven-bundle-plugin 中的 the<dependency>或 the <Import-Package>

整个项目可在 GitHub 上的https://github.com/antonyh/cq5-cxf - 它构建、安装和工作,无需更改 CQ5.4 / CQ5.5 上的引导委托。

于 2013-03-04T22:38:40.880 回答
1

CQ5.5 osgi bundles include org.apache.cocoon.cocoon-xml which exports packages:

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

Which are available for use in other osgi bundles or component jsp files.

于 2013-03-07T18:25:19.703 回答
0

对于“vanilla” XML,您可以简单地将 .xml 扩展名添加到您的内容 URL,然后将输出内容的 XML 表示。这可以通过 HTTP 获取。

于 2013-02-01T06:54:17.833 回答