2013-01-31 71 views
4

我目前的實現使用JSP生成XML,但我正在使用的不同記錄類型的數量不斷增加,並且JSP模板的數量變得難以維護。從vanilla Adob​​e CQ5生成XML的好方法是什麼?

因此,我使用javax.xml.bind編寫了一個解決方案,但很快發現代碼將編譯但不能在OSGi中運行。長話短說,有一個本地編譯的依賴項 - com.sun。* - 默認情況下,它不包含在Felix啓動類路徑中。包含此依賴關係是修改sling.properties以在org.osgi.framework.bootdelegation配置行中包含com.sun。*的問題。但是,我正在一個大型企業生產環境中工作,因此管理額外配置件的想法並不理想。

所以,我的問題的肉:是否有更好的方法來在Adobe CQ中以編程方式生成自定義XML?在應該使用的堆棧中是否有不同的JAXB impl,而不是javax.xml.bind?是否有另一個更符合CQ/Felix的XML編組API?

+0

以下是在OSGi環境中使用EclipseLink JAXB(MOXy)的示例:http://stackoverflow.com/questions/12942750/moxy-error-with-karaf/12943115#12943115 –

+0

感謝您的信息,Blaise。我特別尋找已經在Adobe CQ/Felix堆棧中的即用型解決方案。我已經有一個解決方案,需要一個額外的配置管理部分,看起來簡化我的生活:) – jason

+0

有關使用配置Maven構建啓動代表團問題的方法 - 我知道,我已經做到了。您使用的是哪個版本的CQ? – antonyh

回答

2

我還沒有任何具體的文檔,但它可以包括com.sun。*而無需更改Sling啓動委派。

我已經在pom.xml中完成了一個演示項目,它使用CQ5中的CXF作爲OSGi服務。它可以是maven-bundle-plugin中的<dependency><Import-Package>

整個項目在GitHub的https://github.com/antonyh/cq5-cxf上可用 - 它可以在CQ5.4/CQ5.5上進行引導委派的構建,安裝和工作,而無需更改。

0

對於「vanilla」XML,您可以簡單地爲您的內容URL添加一個.xml擴展名,並輸出內容的XML表示形式。這可以通過HTTP獲取。

+0

我不想要「香草」xml。我知道CQ通過將資源上的擴展名從「.html」替換爲「.xml」或「.json」來處理xml和json(無法控制模式)的處理程序。我想要的是能夠以編程方式生成與使用CQ或Felix中Java環境中可用軟件的自定義模式相匹配的XML。謝謝。 – jason

+0

夠公平的。雖然不在java上下文中,但另一種選擇是使用[Sling輸出重寫](http://sling.apache.org/site/output-rewriting-pipelines-orgapacheslingrewriter.html)使用XSLT進行轉換。 – diffa

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文件使用。

相關問題