本来好好的,在用sqlyog 增加数据库的表,结果现在eclipse中所有的连接数据库的代码都报错了exception org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/ConMysql
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/ConMysql
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.LOG.DOWNLOAD.checkname_jsp._jspService(checkname_jsp.java:100)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.NoClassDefFoundError: com/ConMysql
org.apache.jsp.LOG.DOWNLOAD.checkname_jsp._jspService(checkname_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.附上一个连接数据库的类
package com;import java.sql.*;
import javax.sql.*;
import javax.naming.*;
//import database.DBConnectionManager;public class ConPool
{
      Connection conn=null; //数据库连接变量
      Statement stmt=null;//statement语句变量
      private PreparedStatement prepstmt=null;//预定义statement 变量
     // private DBConnectionManager dcm=null;//连接池管理变量
       DataSource ds = null;
     
      void init() throws Exception{
        InitialContext ctx=new InitialContext();     
        ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql"); //连接池名,具体看上一篇  
        conn = ds.getConnection();    
      }
    //构造数据库的连接和访问类
      public ConPool() throws Exception{
          init();
          stmt=conn.createStatement();
      }
      public ConPool(int resultSetType,int resultSetConcurrency) throws Exception{
          init();
          stmt=conn.createStatement(resultSetType,resultSetConcurrency);
      }
      //执行sql语句,返回结果集
      public ResultSet executeQuery(String sql) throws SQLException{
         if(stmt!=null){
             return stmt.executeQuery(sql);
          }
          else return null;
      }
      public ResultSet executeQuery() throws SQLException{
          if(prepstmt!=null){
             return prepstmt.executeQuery();
          }
          else return null;
      }
      public int executeUpdate(String sql) throws SQLException{
          if(stmt!=null){
             return stmt.executeUpdate(sql);  
          }
          else return -1;
      }
      public int executeUpdate() throws SQLException{
          if(prepstmt!=null){
             return prepstmt.executeUpdate();
          }
          else return -1;
      }
      //够找数据库的连接和访问类
      //预编译SQL语句
      public ConPool(String sql) throws Exception{
          init();
          this.prepareStatement(sql);
      }
      public ConPool(String sql,int resultSetType,int resultSetConcurrency) throws Exception{
          init();
          this.prepareStatement(sql,resultSetType,resultSetConcurrency);
      }     
      //返回连接
      public Connection getConnection(){
          return conn;
      }
    
      //关闭连接
      public void close() throws Exception{
          if(stmt!=null){
             stmt.close();
             stmt=null;
           }
          if(prepstmt!=null){
             prepstmt.close();
             prepstmt=null;
           }
         if(conn!=null){
            conn.close();
           }
      }  
     
     //preparedStatement 创建一个对象
     public void prepareStatement(String sql) throws SQLException{
          prepstmt=conn.prepareStatement(sql);
        
     }
     public void prepareStatement(String sql,int resultSetType,int resultSetConcurrency) throws SQLException{
          prepstmt=conn.prepareStatement(sql,resultSetType,resultSetConcurrency);
     }
  
     //设置对应的值
     //index参数索引value对应值
     public void setString(int index,String value) throws SQLException{
         prepstmt.setString(index,value);
     }
     public void setInt(int index,int value) throws SQLException{
         prepstmt.setInt(index,value);
     }
     public void setBoolean(int index,boolean value) throws SQLException{
         prepstmt.setBoolean(index,value);
     }
     public void setDate(int index,Date value) throws SQLException{
         prepstmt.setDate(index,value);
     }
     public void setLong(int index,long value) throws SQLException{
         prepstmt.setLong(index,value);
     }
     public void setFloat(int index,float value) throws SQLException{
         prepstmt.setFloat(index,value);
     }
     public void setBytes(int index,byte[] value) throws SQLException{
         prepstmt.setBytes(index,value);
     }     //清除参数及返回状态
     public void clearParameters() throws SQLException{
         prepstmt.clearParameters();
         prepstmt=null;
     }
     public PreparedStatement getPreparedStatement(){
         return prepstmt;
     }
     public Statement getStatement(){
         return stmt;
     }     
}

解决方案 »

  1.   

    找不到类,推断是编译问题,把工程的包都remove掉,然后重新加进来rebuild后看看。
      

  2.   

    java.lang.NoClassDefFoundError: com/ConMysql
    你连接数据库的是类,是不是名字搞错了
      

  3.   

    project-clean
    一下好了
    坑爹的eclipse
      

  4.   

    java.lang.NoClassDefFoundError: com/ConMysql 错误是找不到com包下的ConMysql类.
      

  5.   

    可以看一下jar包,删了重新添加试试看!
      

  6.   

    你用的驱动包是不是项目外部的链接啊,那样需要重新导一遍,下回要记得用内部链接,放到webroot下的lib里面
      

  7.   

    感觉lz这样写连接的方法有问题,我总觉着每次lz init之后,打开连接,是否关闭呢,如果用户对数据库执行一次操作,打开一个,假如没有关闭的话,到最后总会有问题的。。
    lz可以检查下是否关闭