2013-04-18 45 views
0

我需要一些關於以下場景的指針/建議。需要指針|使用JDBCTemplate | CQ 5.5

場景:

我們正試圖在CQ 5.5使用JDBCTemplate查詢數據庫(Oracle 11g)。作爲第一步,我們有integrated CQ with Spring Framework。現在爲了使JDBCTemplate能夠工作,requires JDBC driver需要單獨加載到CQ中,因爲它不適用於Spring Jar。需要的罐子在這裏可用http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html和jar在我的情況下是「ojdbc6.jar」,其中包含OracleDriver類(JavaDoc:* http://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.html *)需要註冊驅動程序以創建與數據庫的連接。在以下幾點需要

問題/建議:

  1. 以oracle 11g是商業產品,所以沒有庫可在網上爲它(聚甲醛的依賴),我們需要創建一個單獨的本地倉庫它。 (需要指針;有沒有其他方法可以做到這一點?
  2. 上面提到的jar不是OSGi。 那麼在這種情況下如何處理?
  3. 在這個轉換罐子OSGi包我不得不刪除與進口的MANIFEST.MF文件包提到版本的這個過程中(我已經按照此處http://cq-ops.tumblr.com/post/21893960212/how-to-turn-a-jdbc-driver-jar-into-an-osgi-bundle-jar提到的命令創建的OSGi包)。 (據我所知,CQ默認選擇任何類別可用的最新版本,當任何類別的新版本可用時,可能存在與當前版本不兼容的問題需要指針;是否應該查看?優先級有沒有人遇到任何問題,由於這在任何項目

現狀:

通過轉換ojdbc5.jar到OSGi包;我能夠使用JDBCTemplate。 但是尋找一些指針來檢查是否有其他方法在其他項目中遵循以實現上述場景?

回答

0
  1. oracle驅動程序未發佈到任何公共maven回購。所以的確你必須把這個jar放到你自己的maven倉庫中

  2. 在Apache Karaf中有一個很好的功能,你可以在其中編寫wrap:在一個bundle url前面,它會自動創建一個bundle,使用bnd工具。 如果CQ沒有這樣的功能,那麼你將不得不自己創建這個包。在這種情況下,Maven bundle插件可以幫助你。你可以依賴於使用maven依賴的oracle jar。然後你可以定義oracle jar包的導出。然後Bnd應該自動內聯你jar中的類。另一種選擇是maven shade插件。你可以看看servicemix包的來源。在那裏你會發現poms捆綁了很多普通的罐子。

  3. 不確定你的意思。據我所知,oracle驅動程序沒有任何外部依賴關係。

我寫了一個DB tutorial for Apache Karaf解釋如何應對Oracle驅動程序,以及如何在不依賴於具體的驅動程序來創建數據源。

本教程中的解決方案不能在CQ中1:1使用,但它肯定會給你一些指示。