我遇到了以下情况。
我使用 Apache Felix
作为 OSGi 服务实现,使用 Apache Karaf
作为 OSGi 容器。
karaf
中有一个 bundle,它应该通过 hibernate 将一些数据保存到数据库中,但我总是得到一个 SQLException: No Suitable Driver found.
我将 mysql-connector-bundle
部署到 karaf
。
在我看来,问题是 hibernate 是否导入 mysql-driver-packages
或我应该映射的类。
但我不知道如何解决这个问题。我熟悉 eclipse rcp,其中 buddy-policy 修复了此类问题,felix
和 karaf
是否有解决此问题的最佳实践?
最佳答案
你使用什么版本的 hibernate ?只有从 Hibernate 4 开始,hibernate 才知道 OSGi 类加载器,但它仍然没有完整的 OSGi 支持。参见例如https://hibernate.onjira.com/browse/HHH-7527 ,计划用于 Hibernate 4.2。
我们将 Gemini JPA 与 eclipselink 一起用作 OSGi 中的 JPA 提供程序。
在 karaf 生态系统中,有 Aries JPA,它主要与 OpenJPA 一起使用。参见 Which JPA providers are supported by Apache Aries Managed JPA?
关于mysql - OSGi 和 Hibernate - 不合适的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13291789/