【救命】 用eclipse过程中,突然全部代码连接数据库报错

xiaohaotidyguo 2011-05-02 07:51:00
本来好好的,在用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;
}




}



...全文
163 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_rosebush 2011-05-03
  • 打赏
  • 举报
回复
感觉lz这样写连接的方法有问题,我总觉着每次lz init之后,打开连接,是否关闭呢,如果用户对数据库执行一次操作,打开一个,假如没有关闭的话,到最后总会有问题的。。
lz可以检查下是否关闭
休谱诺斯 2011-05-03
  • 打赏
  • 举报
回复
你用的驱动包是不是项目外部的链接啊,那样需要重新导一遍,下回要记得用内部链接,放到webroot下的lib里面
ebonyzhang 2011-05-03
  • 打赏
  • 举报
回复
可以看一下jar包,删了重新添加试试看!
ebonyzhang 2011-05-03
  • 打赏
  • 举报
回复
楼主,那个连接数据库的类是不是通用的呢?
keke18181818 2011-05-03
  • 打赏
  • 举报
回复
你重启一下看看,我也遇到过类似的问题
xdrs1314 2011-05-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ylz2007 的回复:]

找不到类,推断是编译问题,把工程的包都remove掉,然后重新加进来rebuild后看看。
[/Quote]java.lang.NoClassDefFoundError: com/ConMysql 错误是找不到com包下的ConMysql类.
xiaohaotidyguo 2011-05-02
  • 打赏
  • 举报
回复
project-clean
一下好了


坑爹的eclipse
[Quote=引用 5 楼 ylz2007 的回复:]

引用 4 楼 xiaohaotidyguo 的回复:

我能找到class文件啊引用 1 楼 ylz2007 的回复:

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


有时候是会碰到这类莫名其妙的问题。
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaohaotidyguo 的回复:]

我能找到class文件啊引用 1 楼 ylz2007 的回复:

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

有时候是会碰到这类莫名其妙的问题。
xiaohaotidyguo 2011-05-02
  • 打赏
  • 举报
回复
我能找到class文件啊[Quote=引用 1 楼 ylz2007 的回复:]

找不到类,推断是编译问题,把工程的包都remove掉,然后重新加进来rebuild后看看。
[/Quote]
xiaohaotidyguo 2011-05-02
  • 打赏
  • 举报
回复
所有的类都找不到了啊,不应该啊
[Quote=引用 1 楼 ylz2007 的回复:]

找不到类,推断是编译问题,把工程的包都remove掉,然后重新加进来rebuild后看看。
[/Quote]
qinhualee 2011-05-02
  • 打赏
  • 举报
回复
java.lang.NoClassDefFoundError: com/ConMysql
你连接数据库的是类,是不是名字搞错了
  • 打赏
  • 举报
回复
找不到类,推断是编译问题,把工程的包都remove掉,然后重新加进来rebuild后看看。

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧