У меня есть проект, который создается из нескольких пакетов 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>
Теперь, при использовании этого DataSource будет другой пакет, мы получаем ошибку:
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
Ни одно из этих решений не кажется, чтобы помочь.
URL-адрес генерируется PGPoolingDataSource, который находится в том же комплекте, что и драйвер. Так что это кажется мне маловероятным. Кроме того, отображаемый URL-адрес верен. Кроме того, когда я не добавляю драйвер везде, я получаю ту же ошибку. – Marc
Не удается загрузить драйвер, вы получите ClassNotFoundException. Что-то еще происходит. – duffymo