我有一个从几个OSGi软件包中建立的项目。其中之一是定义可在整个项目中使用的DataSource的通用数据库包。这项服务的春天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>
现在,使用这个数据源时不同的包,我们得到一个错误:
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生成,该PGPoolingDataSource来自与驱动程序相同的bundle。所以这在我看来似乎不大可能。此外,显示的网址是正确的。 另外,当我不在任何地方添加驱动程序时,我会得到相同的错误。 – Marc 2010-06-02 10:05:12
无法加载驱动程序会给你一个ClassNotFoundException。其他事情正在发生。 – duffymo 2010-06-02 11:58:23