У меня есть проект, который собран из нескольких пакетов OSGi. Одним из них является универсальный пакет базы данных, который определяет источник данных, который можно использовать на протяжении всего проекта. Определение этой службы для пружинного компонента:
<osgi:service interface="javax.sql.DataSource">
<bean class="org.postgresql.ds.PGPoolingDataSource">
<property name="databaseName" value="xxx" />
<property name="serverName" value="xxx" />
<property name="user" value="xxx" />
<property name="password" value="xxx" />
</bean>
</osgi:service>
Теперь, когда этот источник данных использует другой пакет, мы получаем ошибку:
No suitable driver found for jdbc:postgresql://localhost/xxx
Я попробовал следующее для добавления org.postgresql.Driver в DriverManager:
Создание экземпляра пустого компонента для этого драйвера в контексте весны, например:
<bean class="org.postgresql.Driver" />
Статический экземпляр драйвера в одном из классов, например:
Class.forName("org.postgresql.Driver");
а. Также пробовал это при добавлении пакета org.postgresql
как DynamicImport-Package
.
Добавлен файл META-INF\services\java.sql.Driver
с содержанием org.postgresql.Driver
Кажется, ни одно из этих решений не помогает.