tomcat中server.xml是这么配置的
<Context path="/MyZhiNangTuanDemo" docBase="F:\MyEclipse\Workspaces\MyZhiNangTuanDemo\WebRoot"
debug="5" reloadable="true" crossContext="true">
 
 <Logger className="org.apache.catalina.logger.FileLogger"
 prefix="localhost_MysqlTest_log." suffix=".txt"
 timestamp="true"/>
 
<Resource name="jdbc/mldn"  auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/mldn">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>URL</name>
<value>jdbc:mysql://localhost:3306/mldn</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>root</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>

  </ResourceParams>
</Context>但是启动tomcat是出现了下面问题:
[WARN ] 2009-10-05 17:46:01 Method:  org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:71)
SQL Error: 0, SQLState: null
 [ERROR] 2009-10-05 17:46:01 Method:  org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:72)
Cannot create JDBC driver of class '' for connect URL 'null'
 [WARN ] 2009-10-05 17:46:01 Method:  org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:103)
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:1150)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
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:1881)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1174)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:822)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:748)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1099)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:400)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:321)
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:1143)
... 37 morejar包也加进去了 没问题
请高手指点一下 急   谢谢

解决方案 »

  1.   


     protected synchronized DataSource createDataSource()
            throws SQLException {   // Return the pool if we have already created it
            if (dataSource != null) {
                return (dataSource);
            }        // Load the JDBC driver class
            if (driverClassName != null) {
                try {
                    Class.forName(driverClassName);
                } catch (Throwable t) {
                    String message = "Cannot load JDBC driver class '" +
                        driverClassName + "'";
                    logWriter.println(message);
                    t.printStackTrace(logWriter);
                    throw new SQLNestedException(message, t);
                }
            }        // Create a JDBC driver instance
            Driver driver = null;
            try {
                driver = DriverManager.getDriver(url);
            } catch (Throwable t) {
                String message = "Cannot create JDBC driver of class '" +
                    (driverClassName != null ? driverClassName : "") + 
                    "' for connect URL '" + url + "'";
                logWriter.println(message);
                t.printStackTrace(logWriter);
                throw new SQLNestedException(message, t);
            }
    ......}这是源码,你看到哪里出错了吗,
      

  2.   


    <name>URL </name> 
    <value>jdbc:mysql://localhost:3306/mldn </value> 
    把标签体 内容的空格去掉,看行不行了
      

  3.   

    有没有把数据库驱动拷贝到tomcat的lib目录下?
      

  4.   

    你的 tomcat 版本是多少?这种配置方式是 Tomcat 5.0.x 及以前版本的配置方式,从 Tomcat 5.5.x 起都是作为属性进行配置的。启动你的 tomcat,在浏览器中访问 http://localhost:8080/tomcat-docs/jndi-datasource-examples-howto.html 里面有详细的说明,自己去看吧!
      

  5.   

    数据库驱动可以肯定是拷贝进去了   tomcat是5.5的