这是异常:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1438)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at ShowRs.doGet(ShowRs.java:34)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
我确定把连接的JAR 包 导入了。。而且在LIB 里也有这问题 弄了我 2天了~就是 用DEBUG 工具 看 那个 UNKNOWN SOURCE 这块发现 他说我没有 
我把鼠标 点在 Class.forName()上  他说没有 attached 任何SOURCE 或者JAVADOC我感觉 要么就是 字符串 里的 JAR包没有导入  或者导入的不对要么就是 这个CLASS 类的FORNAME 没有找到。。
请高手 帮我看一下~  急~

解决方案 »

  1.   

    mysql的驱动程序不类路径中。
      

  2.   

    那个jar包一般叫做mysql-connector-java-***.jar
      

  3.   

    mysql-connector-java-5.1.0-bin.jar
      这个驱动
      
    我估计可能是你的Class.forName() 字符写错了
      建议百度
      

  4.   

    Class.forname没错,如果错了不可能提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver图和源码发上来
      

  5.   

    导的jar包问题mysql-connector-java-*.jar 
    private static String driver ="com.mysql.jdbc.Driver"; 
    private static String url="jdbc:mysql://localhost:3306/testdb?user=root&password=&useUnicode=true&characterEncoding=utf-8"; 
    private static String user="root"; 
    private static String password="*******"; 
      

  6.   

    我之前也有同样的问题。你先把它删了吧。去下载mysql-connector-java-5.1.7-bin.jar 。
      

  7.   

    高手 我想请问一下  是不是 必须要写成 你给的那种CODE的方法还有。。那个 JAR 是通过 点项目名右键--BUILD PATH--ADD EXTERNAL JAR--导入的~
      

  8.   


    你好。。你这个方法 我用了一下~  刚下的 你说的JAR 包。。貌似没用我现在碰到的 一个 UNKNOWN SOURCE的问题 我感觉应该 是这个字符串在 JAR里找不到。。或者。。因为 我百度了 发现别人也出这个异常 但是 很少有 UNKNOWN SOURCE的问题~ 不太明白。。麻烦 帮忙看下
      

  9.   

    你这样加入的包,在发布到服务器(tomcat)上的时候,这个jar包是没有拷贝过去的。
      

  10.   


    我删掉了 以后 重新 导入JAR包 而且还是新下载的 貌似仍然么有用。。~
      

  11.   


    高手 问一下。。那个TOMCAT 目录下 有COMMON/LIB 还有一个server/lib 是拷到哪个底下?
      

  12.   

    我把 JAR 包手动拷贝到 TOMCAT 的2个目录下 竟然 发现了这个 错误。。
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureLast packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2120)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at ShowRs.doGet(ShowRs.java:34)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Unknown Source)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failureLast packet sent to the server was 0 ms ago.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:335)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2043)
    ... 28 more
    Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:253)
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
    ... 29 more
      

  13.   

    tomcat 的 lib目录下仍一个
      

  14.   


    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * Servlet implementation class for Servlet: ShowRs
     *
     */
     public class ShowRs extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
       
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;

    response.setContentType("text/html;");
    response.setCharacterEncoding("gb2312");
    PrintWriter out=response.getWriter();

    out.println("<table border=1>");
    out.println("<tr><td>Content:</td><tr>");

    try {
    Class.forName("com.mysql.jdbc.Driver");
    conn=DriverManager.getConnection("jdbc:mysql://localhost/mydata?user=root&password=root");
    stmt=conn.createStatement();
    rs=stmt.executeQuery("select * from article");
    while(rs.next()){
    out.println("<tr>");
    out.println("<td>"+rs.getString("title")+"</td>");
    out.println("</tr>");
    }
    out.println("</table>");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    try {
    if(conn!=null){
    conn.close();
    conn=null;
    }
    if(stmt!=null){
    stmt.close();
    stmt=null;
    }
    if(rs!=null){
    rs.close();
    rs=null;
    }
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }

    }  


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }           
    }
      

  15.   

    可能是jar包版块太低或太高了。
      

  16.   


    这样的,试试将jar包放到web-app中你自己的工程下的lib目录里,应该可以了
      

  17.   

    麻烦,下班后测试了一下,你的这个类代码没问题。一切正常。
    那就是你的JAR包的问题了。
    你直接把mysql-connector-java.jar放到你的项目下WEB-INF\lib中就可以了。
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * Servlet implementation class for Servlet: ShowRs
     *
     */
     public class ShowRs extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
       
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("---------------------");
        
         Connection conn=null;
            Statement stmt=null;
            ResultSet rs=null;
            
            response.setContentType("text/html;");
            response.setCharacterEncoding("gb2312");
            PrintWriter out=response.getWriter();
            
           out.println("<table border=1>");
            out.println("<tr><td>Content:</td><tr>");
            
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn=DriverManager.getConnection("jdbc:mysql://localhost/testdb?user=root&password=root");
                stmt=conn.createStatement();
                rs=stmt.executeQuery("select * from testTab");
                while(rs.next()){
                 System.out.println(rs.getString(1));
                 System.out.println("----------ttttt-----------");
                    out.println("<tr>");
                    out.println("<td>"+rs.getString("name")+"</td>");
                    out.println("</tr>");
                }
                out.println("</table>");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                try {
                    if(conn!=null){
                        conn.close();
                        conn=null;
                    }
                    if(stmt!=null){
                        stmt.close();
                        stmt=null;
                    }
                    if(rs!=null){
                        rs.close();
                        rs=null;
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
        }      
        
        
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }                 
    }
      

  18.   


    谢谢啊。。帮忙测试下~你说的 放到自己项目下的 LIB 我试过了。。不过我可以试下 把LIB 删了 再放一次  辛苦l ~
      

  19.   

    自己能找到那个Driver.class么?你能找到的话没理由jvm找不到
      

  20.   

    字串没问题的,代码我测试了下,只要将jar包放在自己项目的lib下就可以的,不放的话就是一楼的那个异常
      

  21.   

    自己项目的LIB 是从 我的电脑 点进去 还是。。从 左边的目录直接拖进去?
      

  22.   

    好了 谢谢大家  我把分加给你们吧。。我知道 是怎么错了 是 LOMBOZ 这个PROJECT 的问题 我换成MYECLIPSE 就好了~