lxmxrx
夜半微凉
2010-05-06 23:17

tomcat连接jsp文件出错。我找了很久,不知道错误在哪。

已采纳

这是什么问题呢?大家帮忙解决一下。[code="java"]type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.NullPointerException
com.tools.ConnDB.executeQuery(ConnDB.java:55)
com.dao.ScripDao.query(ScripDao.java:25)
com.action.ScripAction.scripQuery(ScripAction.java:43)
com.action.ScripAction.execute(ScripAction.java:26)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
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.20 logs.

[/code]

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

12条回答

  • xiaolongfeixiang 拽拽的初行者 11年前

    试试,看哪一行为空?
    [code="java"] public ResultSet executeQuery(String sql) {
    try { // 捕捉异常
    conn = getConnection();
    System.out.println("conn:"+conn);
    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
    ResultSet.CONCUR_READ_ONLY);
    System.out.println("stmt:"+stmt);
    rs = stmt.executeQuery(sql);
    System.out.println("rs:"+rs);
    } catch (SQLException ex) {
    System.err.println(ex.getMessage()); // 输出异常信息
    }
    return rs; // 返回结果集对象
    }
    [/code]

    点赞 评论 复制链接分享
  • qwe_rt qwe_rt 11年前

    [code="java"]while(rs.next()) {[/code]
    这段代码不可能抛出空指针异常。

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    是的,应该是这里出现错误。你测试一下。再告诉我

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    你修改一下这段代码
    [code="java"]
    public ResultSet executeQuery(String sql) {

    try { // 捕捉异常

    conn = getConnection();

    System.out.println("conn:"+conn);

    stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

    ResultSet.CONCUR_READ_ONLY);

    System.out.println("stmt:"+stmt);

    rs = stmt.executeQuery(sql);

    System.out.println("rs:"+rs);

    } catch (SQLException ex) {

    System.err.println(ex.getMessage()); // 输出异常信息

    }

    return rs; // 返回结果集对象

    }

    [/code]
    测试一下你这段代码
    if(rs!=null&&rs.next()){
    System.out.println("come on~~");
    }

    点赞 评论 复制链接分享
  • qwe_rt qwe_rt 11年前

    根据api的说明文档,可以看到
    executeQuery返回值的说明,说明返回值永远不会为null
    [quote]Returns:
    a ResultSet object that contains the data produced by the given query; never null [/quote]

    ResultSet 中next方法返回的类型为Boolean。永远不会为null
    [quote]Returns:
    true if the new current row is valid; false if there are no more rows [/quote]
    再仔细检查错误所在。

    点赞 评论 复制链接分享
  • qwe_rt qwe_rt 11年前

    [quote]1.java.lang.NullPointerException

    2. com.dao.ScripDao.query(ScripDao.java:27) [/quote]
    贴出代码

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    你先能正常获取getConnection。你这段代码差不多跟我写的一样啊。[code="java"]
    /**
    * 查询一(普通-查询)
    */
    public ResultSet executeQuery(String sql) throws Exception{
    sql = sql.toLowerCase();
    ResultSet rs = null;
    PreparedStatement prstmt = null;
    Connection conn = null;
    try{
    conn = getConnection();
    if(conn!=null){
    prstmt = conn.prepareStatement(sql);
    rs = prstmt.executeQuery();

    conn.close();
    }
    }catch(Exception e){
    e.printStackTrace();
    if(conn!=null){
    conn.close();
    }
    }
    return rs;
    }
    [/code]
    我的写法

    点赞 评论 复制链接分享
  • xiaolongfeixiang 拽拽的初行者 11年前

    [quote]调试不了 [/quote]

    为什么??什么状况?

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    应该是这里getConnection is null

    点赞 评论 复制链接分享
  • xiaolongfeixiang 拽拽的初行者 11年前

    [code="java"]com.tools.ConnDB.executeQuery(ConnDB.java:55) [/code]
    [color=blue][b]
    这一句代码,报空指针了。检查该句代码,或者Debug跟踪到此,看看哪一个变量是空的[/b][/color]

    点赞 评论 复制链接分享
  • lzj0470 lzj0470 11年前

    在这个办法当中com.tools.ConnDB.executeQuery有问题,查询ConnDB类55行是写什么,最好是把executeQuery贴出来。

    点赞 评论 复制链接分享
  • qwe_rt qwe_rt 11年前

    com.tools.ConnDB.executeQuery(ConnDB.java:55)

    把这个方法代码贴出来,

    点赞 评论 复制链接分享

相关推荐