我遇到了以下情况。我使用Apache Felix
作为OSGi服务实现,使用Apache Karaf
作为OSGi容器。karaf
中有一个包,它可以通过hibernate将一些数据保存到数据库中,但我总是得到一个SQLException: No Suitable Driver found.
,因为我将mysql-connector-bundle
部署到了karaf
。在我看来,问题是hibernate是否导入了mysql-driver-packages
,也没有导入应该映射的类。但我不知道如何解决这个问题。我熟悉eclipse,伙伴策略修复了这样的问题,对于felix
和karaf
,有什么解决这个问题的最佳实践吗
发布于 2012-11-08 16:20:42
您使用的是哪个版本的hibernate?从Hibernate 4开始,hibernate才意识到OSGi类加载器,但它仍然没有完全的OSGi支持。例如,请参阅https://hibernate.onjira.com/browse/HHH-7527,它是为Hibernate 4.2计划的。
我们使用带有eclipselink的Gemini JPA作为OSGi中的JPA提供者。
在karaf生态系统中,有Aries JPA,它主要与OpenJPA一起使用。请参阅Which JPA providers are supported by Apache Aries Managed JPA?
发布于 2012-11-08 17:02:29
Hibernate不能访问来自其他包的do数据和类(至少在3.x版本中是这样;我不知道是不是版本4)。只有当所有(使用hibernate的方法、pojos、映射文件、所有库)都在同一个包中时,它才能轻松工作。它不能访问其他包中的资源。
https://stackoverflow.com/questions/13291789
复制