使用Hibernate的问题 - 找不到JDBC驱动程序类:com.mysql.jdbc.Driver
当使用hibernate连接到MySQLDB并添加数据时,我有一个非常奇怪的问题。使用Hibernate的问题 - 找不到JDBC驱动程序类:com.mysql.jdbc.Driver
这是我的错误:
没有找到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-web应用/。 原因:
Exception constructing service 'ValueEncoderSource': Error invoking
服务构建器方法 org.apache.tapestry5.services.TapestryModule.buildValueEncoderSource(地图, InvalidationEventHub)(在 TapestryModule.java:2287)(对于服务 'ValueEncoderSource'):错误调用 服务贡献法 org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration, 布尔,HibernateSessionSource, 会议,TypeCoercer,PropertyAccess, LoggerSource):异常构建 服务 'HibernateSessionSource': 错误调用服务构建器方法 org.apache.tapestry5.hibernate.HibernateCoreModule.buildHibernateSessionSource(记录器, 列表,RegistryShutdownHub)(在 HibernateCoreModule.java:123)(对于 服务 'HibernateSessionSource'): 找不到JDBC驱动程序类: com.mysql.jdbc.Driver
我敢肯定,司机是在类路径中。
它可能是什么?
您的驱动程序不在类路径中。
有两种方法,以确保它在classpath:
- 将它添加到全局lib目录。对于Tomcat,这是
TOMCAT_HOME/lib
。 - 将其纳入战争。
这取决于您使用的要求。
如果您打算使用Tomcat来管理连接池,则需要将其添加到TOMCAT_HOME/lib
,而不是直接在休眠配置中定义数据源,您将通过jndi来引用它。
唯一合理的解释是Driver
类不在CLASSPATH上。
检查以确保mysql-connector-java(或其他相关的)jar确实在它将被加载的地方。如果你百分之百地肯定它,它可能有助于提供更多关于你如何知道课程被加载的信息,以便我们可以找出其他可能的原因。
*“我确定司机在班级路径。”*你有多确定? :) – 2011-06-16 20:32:51
它是一个Web应用程序或独立的,你是如何提供类路径? – stacker 2011-06-16 20:38:59
这是一个网络应用程序。我确定驱动程序在那里,因为我打开了项目的类路径文件,并在那里看到带有驱动程序名称的.xml标记。 – sfrj 2011-06-16 23:51:17