2016-11-11 4 views
0

Я получаюКак использовать драйвер DB2 JDBC с Hibernate

java.lang.ClassNotFoundException: Не удалось загрузить запрошенный класс: com.ibm.db2.jcc.DB2Driver

при попытке подключитесь к базе данных DB2, используя Hibernate. Сосуд драйвера ссылаются как внешняя библиотека:

Image of Eclipse's "Referenced Library" folder

Он также показывает, в пути к классам:

classpathentry kind="lib" path="C:/Program Files (x86)/IBM/SQLLIB/java/db2jcc.jar"/> 

можно также получить доступ к классу, импортируя его в исходном коде. Мой persistence.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="name" transaction-type="RESOURCE_LOCAL"> 
     <description>Persistence Unit</description> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 

     <class>MyClass</class> 

     <properties> 
     <property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:db2://url" />   
     <property name="javax.persistence.jdbc.user" value="user" /> 
     <property name="javax.persistence.jdbc.password" value="password" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect" /> 

     <property name="hibernate.hbm2ddl.auto" value="create" /> 
     <property name="hibernate.show_sql" value="false" /> 
     <property name="hibernate.format_sql" value="true" />   
     </properties> 
    </persistence-unit> 
</persistence> 

Подозреваю, почему это не работает в том, что класс содержится во внешней библиотеке, а не как Maven зависимости, потому что когда я заменить драйвер DB2 на net.ucanaccess.jdbc.UcanaccessDriver (который содержится в пакете Maven), класс будет найден просто отлично.

Любая идея, что я делаю неправильно здесь?

ответ

0

Проблема заключалась в том, что я использовал плагин Maven exec для запуска основного класса. Без использования Maven, он отлично работает ...

0

при использовании com.ibm.db2.jcc.DB2Driver»убедитесь db2jcc.jar & db2jcc_license_cu.jar в вашем classpath.Please добавить как банку в вашем пути к классам и дать попробовать.

+0

К сожалению, это не поможет, по-прежнему такая же ошибка. – Tim

+0

добавьте оба флага в качестве внешнего баннера в свой проект. – Zia

+0

проверьте свойства свойств persistence.xml. <свойство name = "hibernate.connection.driver_class" value = "com.ibm.db2.jcc.DB2Driver" /> – Zia