我有一个由几个 OSGi 包构建的项目。其中之一是一个通用的数据库包,它定义了一个可以在整个项目中使用的数据源。该服务的spring bean定义为:
<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:
在 spring 上下文中为该 Driver 实例化一个空 bean,如下所示:
<bean class="org.postgresql.Driver" />
在其中一个类中静态实例化驱动程序,如下所示:
Class.forName("org.postgresql.Driver");
一种。在将
org.postgresql
包添加为DynamicImport-Package
.添加了
META-INF\services\java.sql.Driver
包含内容的文件org.postgresql.Driver
这些解决方案似乎都没有帮助。