tomcat5中的context.xml的配置如下:<!-- The contents of this file will be loaded for each web application -->
<Context>    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    --> <Resource name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/ly_blog"
/></Context>Java code: DataSource ds = null;

try {
Context context = new InitialContext();
ds = (DataSource)context.lookup("java:/comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
} catch (NamingException e) {
e.printStackTrace();
}
error message:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at com.ly.blog.BlogServlet.doPost(BlogServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:760)
... 18 more
——————————————————————————————————————————————
已经加入mysql驱动。

解决方案 »

  1.   

    你把 MySQL 驱动是不是加到 %TOMCAT_HOME%/common/lib 中去了?关于 tomcat 数据源的问题,在 tomcat 的文档上都能找到的,而且有示例,一步一步地都说明了。启动你的 tomcat 后访问:http://localhost:8080/tomcat-docs/jndi-datasource-examples-howto.html
      

  2.   

    确实是已经把mysql的驱动加入到了 %TOMCAT_HOME%/common/lib 
    tomcat的文档我也看过了。还是解决不了。
    tomcat的文档上是这样写的:Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource)envCtx.lookup("jdbc/mysql");按它代码这样写问题还是存在。
      

  3.   

    你用的是 Tomcat 5.0.x 还是 Tomcat 5.5.x 啊?这两个版本 JNDI 数据源配置方式是不一样的。 
      

  4.   

    回楼上的:我用的是tomcat5.5.17
      

  5.   

    <!-- Default set of monitored resources -->
        <WatchedResource>WEB-INF/web.xml</WatchedResource>
        
        <!-- Uncomment this to disable session persistence across Tomcat restarts -->
        <!--
        <Manager pathname="" />
        -->    <Resource name="jdbc/mysql"
            auth="Container"
            type="javax.sql.DataSource"
            maxActive="100"
            maxIdle="30"
            maxWait="10000"
            username="root"
            password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost/ly_blog"
            />
    把这段代码放到context.xml文件中,然后将这个文件放到META目录下就可以了,你试试
      

  6.   

    Cannot load JDBC driver class 'com.mysql.jdbc.Driver' 
    导入了咋还是找不到呢是不是驱动包错误?
      

  7.   

    我遇到过这样的情况,你把那<context></context>去掉
      

  8.   

    放在META目录和放在WEB-INF目录都试过了。还是不行。
      

  9.   

    利用Tomcat配置数据源,一般都是通过配置server.xml和web.xml来实现的,我还是第一次见配置context.xml的,受教了,不过很相似。
      

  10.   

    你把那个数据源配置文件copy下来给我看看
      

  11.   

    你把那个数据源配置文件copy下来给我看看
      

  12.   

    驱动包没有错误,用jdbc做是可以的。用JNDI做就出现在这样的问题了。
      

  13.   

    那个是数据源的配置文件啊?
    那个context.xml不是数据源的配置吗?
      

  14.   

    你先得告诉我们你的tomcat用的是哪个版本的啊,
      

  15.   

    你用的是tomcat自带的连接池是吧
      

  16.   

    很郁闷。想写一个小小的blog系统,练习一下java web。
    项目还是刚刚起步,之前在学Java web的时候对连接池和jndi不是很熟悉,现在想用一下tomcat自带的连接池,就出现这样的问题了。
    我把整个项目上传了。有兴趣的下载来看下(现在只有很少的代码,应该不会浪费大家很多时间的),知道问题在哪里的请回帖。谢谢大家了。!context.xml 在本帖上。http://www.800disk.com/pick.aspx?code=914602264
      

  17.   


    官方文档,tomcat高级点的版本都已经独立出JNDI的配置了。只能配置在context.xml文件里。否则会出错的。
      

  18.   

    url="jdbc:mysql://localhost/ly_blog
    url没端口号哟,
    url="jdbc:mysql://localhost:3306/ly_blog
      

  19.   

    提示你的是,驱动没找到,把tomcat重启下,重启过没