使用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
我确信驱动程序在类路径中。
它可能是什么?
答案 0 :(得分:1)
您的驱动程序不在类路径中。
有两种方法可以确保它在类路径上:
TOMCAT_HOME/lib
。这取决于您使用的要求。
如果您要使用Tomcat来管理连接池,则需要将其添加到TOMCAT_HOME/lib
,而不是直接在hibernate配置中定义数据源,您将通过{ {3}}
答案 1 :(得分:0)
唯一可信的解释是Driver
类不在CLASSPATH上。
检查以确保mysql-connector-java(或其他相关)jar确实位于将加载它的位置。如果您是100%肯定的话,可能有助于提供有关您如何知道正在加载的类的更多信息,以便我们可以确定其他可能的原因。