在启动tomcat时报这样的错误,我检查了数据库的连接:
Driver template:MySQL Connector/J
Driver name:mine
Connection URL:jdbc:mysql://localhost:3306/mine
UserName:root
password:123
DriverClass:org.gjt.mm.mysql.Driver
数据源的配置:
<Resource name="jdbc/mine"  auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/mine">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>123</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/mine</value>
</parameter>
  </ResourceParams>
</Context>具体错误如下:
2010-01-27 14:16:56,328 ERROR [org.hibernate.util.JDBCExceptionReporter] - Cannot create JDBC driver of class '' for connect URL 'null'
2010-01-27 14:16:56,328 WARN [org.hibernate.cfg.SettingsFactory] - Could not obtain connection metadata
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:72)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1463)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1004)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:353)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:296)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:448)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:243)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
... 37 more   请告诉我这是什么原因,谢谢!

解决方案 »

  1.   

    Cannot create JDBC driver of class '' for connect URL 'null' 
    看这行估计是class和url都没读取到
      

  2.   


    tomcat5.5.23.tomcat5.5的还需要进行特别配置吗?
      

  3.   

    你改成这样试一试:
    <Resource   name="jdbc/mine"   auth="Container"   type="javax.sql.DataSource"   
         maxActive="100"   maxIdle="30"   maxWait="10000"   
         username="root"   password="123"   driverClassName="com.mysql.jdbc.Driver"   
      url="jdbc:mysql://localhost:3306/mine?autoReconnect=true"/>      
      </Context>   
      

  4.   

    然后在server.xml <Host>和</Host>之间配置下面代码:
            <Context path="/mine" debug="5" reloadable="true" crossContext="true">
             <ResourceLink name="jdbc/mine" global="jdbc/mine" type="javax.sql.DataSource"/>
            </Context>
      

  5.   


    然后在server.xml <Host>和 </Host>之间配置下面代码: 
            <Context path="/mine" debug="5" reloadable="true" crossContext="true"> 
            <ResourceLink name="jdbc/mine" global="jdbc/mine" type="javax.sql.DataSource"/> 
            </Context>
      

  6.   

    加上这个也不行吗?
    在server.xml <Host>和 </Host>之间配置下面代码: 
            <Context path="/mine" debug="5" reloadable="true" crossContext="true"> 
            <ResourceLink name="jdbc/mine" global="jdbc/mine" type="javax.sql.DataSource"/> 
            </Context>
      

  7.   

    如果还不行,就在你的project的web.xml的</web-app>前加入 
     <resource-ref>
        <res-ref-name>jdbc/mine</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>
      

  8.   

    1) 没deploy工程到tomcat前 tomcat是否能成功启动? 如果否 请检查环境变量设置
    2)数据库驱动包有没有添加到classpath或者tomcat的lib包中?
      

  9.   

    这个问题肯定是配置tomcat连接池有问题,所以还是检查这些配置文件吧。
    如果按照我说的这三步,就肯定能解决问题啊。
      

  10.   


    回答第一个问题:可以,没有部署到tomcat时,tomcat可以成功启动
    回答第一个问题:数据库驱动包已经添加到了tomcat的lib包中
      

  11.   

    http://blog.csdn.net/huang_junfeng/archive/2007/08/22/1754221.aspx看看这个