使用Hibernate的问题 - 找不到JDBC驱动程序类:com.mysql.jdbc.Driver

时间:2011-06-16 20:25:43

标签: java mysql hibernate driver

使用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 ERROR 500

     

访问/ fpa-webapp /时出现问题。   原因是:

Exception constructing service 'ValueEncoderSource': Error invoking
     

服务构建器方法   org.apache.tapestry5.services.TapestryModule.buildValueEncoderSource(地图,   InvalidationEventHub)(at   TapestryModule.java:2287)(用于服务   'ValueEncoderSource'):错误调用   服务贡献法   org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,   boolean,HibernateSessionSource,   Session,TypeCoercer,PropertyAccess,   LoggerSource):异常构建   服务'HibernateSessionSource':   调用服务构建器方法时出错   org.apache.tapestry5.hibernate.HibernateCoreModule.buildHibernateSessionSource(记录器,   List,RegistryShutdownHub)(at   HibernateCoreModule.java:123)(for   service'HibernateSessionSource'):   找不到JDBC驱动程序类:   com.mysql.jdbc.Driver

我确信驱动程序在类路径中。

它可能是什么?

2 个答案:

答案 0 :(得分:1)

您的驱动程序不在类路径中。

有两种方法可以确保它在类路径上:

  1. 将其添加到全局lib目录中。对于Tomcat,这是TOMCAT_HOME/lib
  2. 将其纳入战争。
  3. 这取决于您使用的要求。

    如果您要使用Tomcat来管理连接池,则需要将其添加到TOMCAT_HOME/lib,而不是直接在hibernate配置中定义数据源,您将通过{ {3}}

答案 1 :(得分:0)

唯一可信的解释是Driver类不在CLASSPATH上。

检查以确保mysql-connector-java(或其他相关)jar确实位于将加载它​​的位置。如果您是100%肯定的话,可能有助于提供有关您如何知道正在加载的类的更多信息,以便我们可以确定其他可能的原因。