1
我得到心爱的错误:OSGI与Hibernate: “没有找到合适的驱动程序”
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/acme
我明白了很多原因,这个错误通常出现:
- 无效网址:这URL似乎没有任何错误,并且在SQL Workbench中工作得很好。
- 不在ClassPath上的驱动程序:它被成功导入(org.postgresql.Driver)并且可以直接或通过使用Class.forName(“org.postgresql.Driver”)实例化。
Hibernate的SessionFactory
负载从一个Spring Bean启动,但在运行时具有以下属性进行:
hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.driver_class = org.postgresql.Driver
hibernate.connection.url = jdbc:postgresql://localhost:5432/acme
hibernate.connection.username = user
hibernate.connection.password = pass
我明白了Java DriverManager
不OSGi的工作,所以注册与DriverManager
驱动程序或实例化它强制它注册没有影响。
有谁知道我该如何解决这个问题?有没有共同的解决方案?
在此先感谢!
解决方案
正如安德烈奥拉特指出,我做了添加司机到实施捆绑,但离开它了休眠束其中Hibernate的类的错误和依赖关系。
他们在两个单独的捆绑包,但引用它们或实例化它们没有问题,所以我不能看到这是问题...? –
你可以在Hibernate包中添加代码来访问PostgreSQL包中的类吗?您可能能够从第三个包中访问Hibernate和PostgreSQL包中的类,但这并不意味着Hibernate包将能够访问PostgreSQL包中的类。如果知道它,Hibernate bundle将能够访问PostgreSQL中的类。是否有意义? –
这很可能是这个问题,因为我不记得自从添加PostgreSQL驱动程序后对Hibernate包进行任何更改,并且您猜到我的Hibernate SessionFactory在第三个包中!我会在星期一看这个,回到你身边。 –