Проблемы с использованием Hibernate - класс драйвера JDBC не найден: com.mysql.jdbc.Driver - PullRequest
4 голосов
/ 17 июня 2011

У меня действительно странная проблема при использовании hibernate для подключения к MySQLDB и добавления данных.

Это ошибка, которую я получаю:

Класс драйвера JDBC не найден: com.mysql.jdbc.Driver

Вот так выглядит мой файл hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/fpa-webapp</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password"></property>
        <property name="hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
    </session-factory>
</hibernate-configuration>

Я не понимаю, почему при переходе к приложению я вижу ошибку 500;он говорит, что драйвер не найден.

ОШИБКА HTTP 500

Проблема с доступом к / fpa-webapp /.Причина:

Exception constructing service 'ValueEncoderSource': Error invoking

метод построителя службы org.apache.tapestry5.services.TapestryModule.buildValueEncoderSource (Map, InvalidationEventHub) (на TapestryModule.java:2287) (для службы 'ValueEncoderSource' службы): ошибка вызванаМетод org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource (MappedConfiguration, логическое значение, HibernateSessionSource, Session, TypeCoercer, PropertyAccess, LoggerSource): служба создания исключений 'HibernateSessionSource.ource'. метод вызова метода.buildHibernateSessionSource (Logger, List, RegistryShutdownHub) (в HibernateCoreModule.java:123) (для службы 'HibernateSessionSource'): класс драйвера JDBC не найден: com.mysql.jdbc.Driver

Я уверендрайвер находится в пути к классам.

Что бы это могло быть?

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Ваш драйвер не на пути к классам.

Есть два способа убедиться, что он находится на пути к классам:

  1. Добавьте его в глобальный каталог lib. Для Tomcat это TOMCAT_HOME/lib.
  2. Включите это в войну.

Это зависит от ваших требований, которые вы используете.

Если вы собираетесь использовать Tomcat для управления пулом соединений, вам нужно добавить его в TOMCAT_HOME/lib, и вместо того, чтобы определять свой источник данных непосредственно в конфигурации гибернации, вы будете ссылаться на него через JNDI .

0 голосов
/ 17 июня 2011

Единственное правдоподобное объяснение состоит в том, что класс Driver отсутствует в CLASSPATH.

Убедитесь, что файл mysql-connector-java (или другой соответствующий) находится в том месте, где он будет загружен. Если вы на 100% уверены, что это так, это может помочь предоставить дополнительную информацию о том, как вы знаете, загружается класс, чтобы мы могли определить другие возможные причины.

...