OSGi 和数据库驱动程序

Posted

技术标签:

【中文标题】OSGi 和数据库驱动程序【英文标题】:OSGi and database drivers 【发布时间】:2011-05-20 14:41:52 【问题描述】:

我一直在尝试将一个捆绑包部署到创建 hsqldb 数据源的 servicemix。

到目前为止,除了以下异常,我没有成功:

Caused by: java.sql.SQLException: No suitable driver found for jdbc:hsqldb:mem:temp
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:154)

我已经将一个包含 HSQLDB 驱动程序的包部署到 osgi,如下所示:

karaf@root> packages:exports | grep hsql
205 org.hsqldb; version="1.8.0.10"          
205 org.hsqldb.index; version="1.8.0.10"    
205 org.hsqldb.jdbc; version="1.8.0.10"     
205 org.hsqldb.lib; version="1.8.0.10"      
205 org.hsqldb.lib.java; version="1.8.0.10" 
205 org.hsqldb.persist; version="1.8.0.10"  
205 org.hsqldb.resources; version="1.8.0.10"
205 org.hsqldb.rowio; version="1.8.0.10"    
205 org.hsqldb.sample; version="1.8.0.10"   
205 org.hsqldb.scriptio; version="1.8.0.10" 
205 org.hsqldb.store; version="1.8.0.10"    
205 org.hsqldb.types; version="1.8.0.10"    
205 org.hsqldb.util; version="1.8.0.10"     
205 org.hsqldb.util.sqltool; version="1.8.0.10"

然后在我的 Spring 配置包中,我得到了以下内容:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
    <property name="url" value="jdbc:hsqldb:mem:temp"/>
    <property name="username" value="sa" />
    <property name="password" value="" />
</bean>

以及捆绑包的清单:

Import-Package: org.hsqldb

我错过了什么吗?任何想法都会很棒,因为我正在努力在网上找到任何东西。

【问题讨论】:

问题已解决!更新到 Java6 解决了这个问题。 【参考方案1】:

正如我在上面的评论中所写的那样,我意识到这个问题没有给出正式的答案,解决方案很简单。这纯粹是升级到 Java 6 的情况。

【讨论】:

以上是关于OSGi 和数据库驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate、JDBC 驱动程序和 OSGi 问题

OSGi Felix 和 BndTools - 按名称加载类

在 Eclipse 中编译和运行 OSGI 应用程序

如何部署 OSGi 应用程序和依赖项?

OSGI、Servlets 和 JPA hello world / 教程 / 示例

在有或没有 OSGi 的情况下使用 JPA 的区别