Нужны указатели | Использование JDBCTemplate | СР 5.5

Мне нужны некоторые указатели/предложения по следующему сценарию.

Сценарий:

Мы пытаемся использовать JDBCTemplate в CQ 5.5 для запроса базы данных (Oracle 11g). В качестве первого шага у нас есть integrated CQ with Spring Framework. Теперь, чтобы JDBCTemplate работал с ним requires JDBC driver, его необходимо загрузить отдельно в CQ, поскольку он недоступен для Spring jar-файлов. Необходимый 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 является коммерческим продуктом, поэтому для него нет доступного онлайн-репозитория (для зависимостей pom), нам необходимо создать для него отдельный локальный репозиторий. (Нужны указатели; есть ли другой способ сделать это?)
  2. Jar, упомянутый выше, не является OSGi. Так что же делать в таком случае? (Я создал пакет OSGi, следуя указаниям, указанным здесь http://cq-ops.tumblr.com/post/21893960212/как-превратить-a-jdbc-драйвер-jar-в-an-osgi-bundle-jar)
  3. В этом процессе преобразования этого jar-файла в OSGi Bundle я должен удалить версии, упомянутые в Imported Packages в файле MANIFEST.MF. (Насколько я понимаю, CQ по умолчанию выбирает самую последнюю версию, доступную для любого класса, могут возникнуть проблемы, когда доступна новая версия любого класса, несовместимая с текущей версией. Нужны указатели; должно ли это быть смотрели на приоритет? Кто-нибудь сталкивался с какой-либо проблемой из-за этого в каком-либо проекте)

Текущий статус:

Путем преобразования ojdbc5.jar в пакет OSGi; Я смог использовать JDBCTemplate. Но ищу некоторые указатели, чтобы проверить, есть ли какой-либо другой подход, который кто-то использовал в другом проекте для достижения сценария, упомянутого выше?


person Rupesh    schedule 18.04.2013    source источник


Ответы (1)


  1. Драйвер оракула не публикуется ни в одном общедоступном репозитории maven. Так что вам действительно придется поместить банку в свой собственный репозиторий maven.

  2. В Apache Karaf есть хорошая функция, когда вы пишете wrap: перед URL-адресом пакета, и он автоматически создает пакет на лету с помощью инструмента bnd. Если в CQ такой функции нет, то вам придется создавать бандл самостоятельно. В этом случае вам может помочь плагин пакета maven. Вы можете зависеть от банки оракула, используя зависимость maven. Затем вы можете определить экспорт для пакетов oracle jar. Затем Bnd должен автоматически встроить классы в вашу банку пакетов. Другим вариантом является плагин maven Shade. Вы можете взглянуть на источник пакетов servicemix. Там вы найдете помпоны, чтобы связать множество простых банок.

  3. Не уверен, что именно вы имеете в виду. Насколько я знаю, драйвер оракула не имеет внешних зависимостей.

Я написал Учебное пособие по БД для Apache Karaf, объясняющее, как работать с драйвером оракула и как создавать источники данных независимо от конкретного драйвера.

Решения в учебнике нельзя использовать 1: 1 в CQ, но они наверняка дадут вам некоторые подсказки.

person Christian Schneider    schedule 18.04.2013