2011-06-16 107 views
4

當使用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

我敢肯定,司機是在類路徑中。

它可能是什麼?

+1

*「我確定司機在班級路徑。」*你有多確定? :) – 2011-06-16 20:32:51

+1

它是一個Web應用程序或獨立的,你是如何提供類路徑? – stacker 2011-06-16 20:38:59

+0

這是一個網絡應用程序。我確定驅動程序在那裏,因爲我打開了項目的類路徑文件,並在那裏看到帶有驅動程序名稱的.xml標記。 – sfrj 2011-06-16 23:51:17

回答

1

您的驅動程序不在類路徑中。

有兩種方法,以確保它在classpath:

  1. 將它添加到全局lib目錄。對於Tomcat,這是TOMCAT_HOME/lib
  2. 將其納入戰爭。

這取決於您使用的要求。

如果您打算使用Tomcat來管理連接池,則需要將其添加到TOMCAT_HOME/lib,而不是直接在休眠配置中定義數據源,您將通過jndi來引用它。

0

唯一合理的解釋是Driver類不在CLASSPATH上。

檢查以確保mysql-connector-java(或其他相關的)jar確實在它將被加載的地方。如果你百分之百地肯定它,它可能有助於提供更多關於你如何知道課程被加載的信息,以便我們可以找出其他可能的原因。

相關問題