Hibernate 在karaf和MS sql不工作的情况下休眠
我正在将Hibernate 5与MSSQL 2012连接。我能够使用java(main方法)成功地获得连接。但是当我部署在Karaf中时,它给了我错误:Hibernate 在karaf和MS sql不工作的情况下休眠,hibernate,maven,apache-karaf,Hibernate,Maven,Apache Karaf,我正在将Hibernate 5与MSSQL 2012连接。我能够使用java(main方法)成功地获得连接。但是当我部署在Karaf中时,它给了我错误: Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [net.sourceforge.jtds.jdbc.Driver] at org.hibernate.boot.registry.cla
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [net.sourceforge.jtds.jdbc.Driver]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:229)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:183)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:139)
at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:78)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)
... 61 more
Caused by: java.lang.ClassNotFoundException: Could not load requested class : net.sourceforge.jtds.jdbc.Driver
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:217)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)[:1.8.0_51]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_51]
at java.lang.Class.forName0(Native Method)[:1.8.0_51]
at java.lang.Class.forName(Class.java:348)[:1.8.0_51]
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
这是我的hibernate.cfg文件:
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:jtds:sqlserver://<ip>:<port>/<dbname></property>
<property name="hibernate.connection.username">testuser</property>
<property name="hibernate.connection.password">abc</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
</session-factory>
</hibernate-configuration>
但仍然存在错误。存储库也包含类(
Driver.class
),但我仍然收到此错误。有人能帮我解决这个问题吗??我缺少什么?通常在OSGi中,使用Driver.class加载jdbc驱动程序不起作用。
相反,您应该使用提供一个数据源作为OSGi服务,并使用Aries JPA使hibernate完全支持OSGi
我还没有使用MS-SQL,但pax jdbc也支持它。因此,它通常应该是有效的
有关完整示例,请参见
wrap:mvn:net.sourceforge.jtds/jtds/1.3.1