2012-05-18 53 views
0

我在基於struts framework 2.3.3和tomcat 7.0.26的項目中使用hibernate 4.1.2。我也在使用mysql(和postgres)進行測試。這是我的hibernate.cfg.xml與MySQL:tomcat7,hibernate 4,struts 2,沒有找到合適的驅動程序

<session-factory> 

    <property name="c3p0.min_size">5</property> 
    <property name="c3p0.max_size">20</property> 
    <property name="c3p0.timeout">300</property> 
    <property name="c3p0.max_statements">50</property> 
    <property name="c3p0.idle_text_period">3000</property> 

    <property name="show_sql">true</property> 

    <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="connection.url">jdbc:mysql://localhost/struts2</property> 
    <property name="connection.username">semperEst</property> 
    <property name="connection.password">*******</property> 
    <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> 

    <!-- Enable Hibernate's automatic session context management --> 
    <property name="current_session_context_class">thread</property> 

    <!-- Disable the second-level cache --> 
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

    <!-- Drop and re-create the database schema on startup --> 
    <property name="hbm2ddl.auto">create-drop</property> 

    <mapping class="firstname.secondname.lesson2.User"/> 

</session-factory> 

我的WEB-INF/lib目錄包含有:

antlr-2.7.7.jar 

asm-3.3.jar 

asm-commons-3.3.jar 

asm-tree-3.3.jar 

commons-fileupload-1.2.2.jar 

commons-io-2.0.1.jar 

commons-lang-2.4.jar 

commons-lang3-3.1.jar 

dom4j-1.6.1.jar 

freemarker-2.3.19.jar 

hibernate-commons-annotations-4.0.1.Final.jar 

hibernate-core-4.1.2.Final.jar 

hibernate-jpa-2.0-api-1.0.1.Final.jar 

javassist-3.11.0.GA.jar 

javassist-3.15.0-GA.jar 

jboss-logging-3.1.0.GA.jar 

jboss-transaction-api_1.1_spec-1.0.0.Final.jar 

log4j-1.2.16.jar 

mysql-connector-java-5.1.20-bin.jar 

ognl-3.0.5.jar 

postgresql-9.1-902.jdbc4.jar 

slf4j-api-1.6.4-sources.jar 

slf4j-log4j12-1.6.4.jar 

struts2-core-2.3.3.jar 

xwork-core-2.3.3.jar 

* 我已經添加使用mysql-connector-java的5.1.20- bin.jar在$ CATALINA_HOME/lib中*

,但我仍然有這樣的例外:

值java.sql.SQLException:無S發現對於JDBC uitable驅動程序:MySQL的://本地主機/ struts2的 在java.sql.DriverManager.getConnection(DriverManager.java:604)

at java.sql.DriverManager.getConnection(DriverManager.java:190) 

    at org.hibernate.service.jdbc.connections.internal. 
     DriverManagerConnectionProviderImpl. 
     getConnection(DriverManagerConnectionProviderImpl.java:192) 

    at org.hibernate.internal. 
     AbstractSessionImpl$NonContextualJdbcConnectionAccess. 
     obtainConnection(AbstractSessionImpl.java:278) 

    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl. 
     obtainConnection(LogicalConnectionImpl.java:297) 

    at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl. 
     getConnection(LogicalConnectionImpl.java:169) 

    at org.hibernate.engine.transaction.internal. 
     jdbc.JdbcTransaction.doBegin(JdbcTransaction.java:67) 

    at org.hibernate.engine.transaction.spi. 
     AbstractTransactionImpl.begin(AbstractTransactionImpl.java:160) 

    at org.hibernate.internal.SessionImpl. 
     beginTransaction(SessionImpl.java:1363) 

    at firstname.lastname.lesson2. 
     PortfolioService.usernameExists(PortfolioService.java:122) 

    at firstname.lastname.lesson2.CreateUser.validate(CreateUser.java:255) 

    at com.opensymphony.xwork2.validator.ValidationInterceptor. 
     doBeforeInvocation(ValidationInterceptor.java:251) 

    at com.opensymphony.xwork2.validator.ValidationInterceptor. 
     doIntercept(ValidationInterceptor.java:263) 

    at org.apache.struts2.interceptor.validation. 
     AnnotationValidationInterceptor. 
     doIntercept(AnnotationValidationInterceptor.java:68) 
at 
    . 
    . 
    .(struts activation frame...) 
    . 
    at org.apache.catalina.core.ApplicationFilterChain. 
     internalDoFilter(ApplicationFilterChain.java:243) 

    at org.apache.catalina.core.ApplicationFilterChain. 
     doFilter(ApplicationFilterChain.java:210) 

    at org.apache.catalina.core.StandardWrapperValve. 
     invoke(StandardWrapperValve.java:224) 

    at org.apache.catalina.core.StandardContextValve. 
     invoke(StandardContextValve.java:169) 

     at org.apache.catalina.authenticator.AuthenticatorBase. 
     invoke(AuthenticatorBase.java:472) 

     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 

     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) 

     at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) 

     at org.apache.catalina.core.StandardEngineValve. 
     invoke(StandardEngineValve.java:118) 

     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 

     at org.apache.coyote.http11.AbstractHttp11Processor. 
      process(AbstractHttp11Processor.java:987) 

     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler. 
     process(AbstractProtocol.java:579) 

     at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor. 
     run(JIoEndpoint.java:307) 

     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 

     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 

     at java.lang.Thread.run(Thread.java:722) 

在Postgres,同樣的問題。所有工作在獨立的應用程序中,沒有struts和tomcat。

在此先感謝

+0

我沒有看到任何理由不與S2合作,因爲S2不在此處。請參閱https://forum.hibernate.org/viewtopic.php?p=2454336和https://hibernate.onjira.com/browse/HHH-7169 –

回答

1

當這種事情發生時,通常的問題(「沒有找到合適的驅動程序」)是你的JDBC庫或者是在錯誤的地方(取決於您的要求),或在太多的地方(比如在WEB-INF/lib以及容器的lib /目錄中)。

哪個組件實際上創建了您的JDBC連接池?如果它是Tomcat(似乎不是這種情況),那麼你的mysql.jar需要在Tomcat的lib /目錄中(特別是在你的webapp的WEB-INF/lib中)。如果你正在做web應用程序中的所有事情,那麼你可能想讓mysql.jar在你的webapp中的WEB-INF/lib中,而在/ Tomcat的lib目錄中/ not /中。

如果您有多個webapps,並且其中一些正在使用Tomcat的DataSource配置,那麼最好將mysql.jar放入Tomcat的lib /目錄並將其從所有webapps的WEB-INF/lib目錄中刪除。

相關問題