[在线解决]空指针问题 书上的例子 我用一个测试文档来测试数据库的连接 结果是成功的 并且能列出显示出 但是运行整个项目 没别的 就 java.lang.NullPointerException 一个小例子 通过QQ把问题解决 希望有好心人相助 190870907已经郁闷了2天 吃不安 坐不稳 睡不着呀! 分数已经不成问题了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴代码测试的不要,只要运行的还有,报的空指针可以通过jsp编译后的类文件找到错误行数,这样定位更快一些 kevinliuu(@。@) ( ) 信誉:107 是书上给的整个Eclipse 项目文件 是能运行的 可能是我遗漏了点东西吧`` 是AJAX的项目 ////////////////////////////////////////////错误exception org.apache.jasper.JasperException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)root cause java.lang.NullPointerException book.rssreader.RssUtil.renderRSSList(RssUtil.java:15) org.apache.jsp.RSSReader_jsp._jspService(org.apache.jsp.RSSReader_jsp:194) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802)////////////////////////////////////////////代码package book.rssreader;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;public class RssUtil { public static String renderRSSList () { StringBuffer buf = new StringBuffer(); String strSQL = "select rss_id from rss where active_status='Y'";//查询所有的RSS记录 Vector v = new Vector (); ResultSet rs = DbManager.getResultSet(strSQL);//执行查询语句,得到记录集 try { while (rs.next())//循环记录集,添加到向量v中 { v.add(new RssEO(rs.getInt("RSS_ID"))); } } catch (SQLException e) { e.printStackTrace(); } for (int i=0;i<v.size();i++)//输出HTML代码 { RssEO rss = (RssEO)v.get(i); buf.append("<a href=\"javascript:readRSS('"+rss.getRssURL()+"', 'rightcolumn');\">"+rss.getRssName()+"</a>"); } return buf.toString(); }} 说的真简单。烦死了,JNDI的烂问题 buf.append("<a href=\"javascript:readRSS('"+rss.getRssURL()+"', 'rightcolumn');\">"+rss.getRssName()+"</a>");这个地方出错? xuyang821225(CSDN账号) ( ) 信誉:107 不知道呀`` 我只希望能解决问题 现在脑子好不舒服 我发源文件给你好不? 应该是rs为空DbManager.getResultSet(strSQL); 返回了null 15行得话,应该是ResultSet rs为空。 catch (SQLException e) { e.printStackTrace(); bSuccess = false; }if (bSuccess)//如果执行成功,则返回rs return rs; else return null; 如果RS为空,应该catch到了啊瞎扯 catch到才怪你只catch了SQLException 多自己想想 if (bSuccess)//如果执行成功,则返回rs return rs; else return null;明显返回了null 能加QQ把问题解决吗!? MyEclipse 里完全没错误 我没一点头绪~~! 能加QQ把问题解决吗!? MyEclipse 里完全没错误 我没一点头绪~~!没QQ本来就没错误是运行时异常 只能说程序编的不严谨 bSuccess是false 自己查查为什么bSuccess为false jokerjava(冷血) ( ) 信誉:96 嗯 通过你们讨论 问题也找出来了 我现在是在看`` 想不出原因啊`` 有返回null吗? 他应该就没catch到~,把catch(SQLException e) 改成catch(Exception e) 试试先? linshaojie(枫陵) 问题还是一样`` 难道SQL语句出了问题? 也不会啊 我自己设计的一个JSP 能正常运行` <!--测试数据--> <%@ page contentType="text/html; charset=gb2312" %><%@ page import="book.rssreader.*" %><%@ page import="java.sql.*"%> <% DbManager ds=new DbManager(); Connection conn = ds.getConnection(); Statement stmt=conn.createStatement(); ResultSet rst=stmt.executeQuery("select rss_id from RssReader where active_status='Y'"); out.println("以下是从数据库中读取出来的数据"); out.println("<br>"); while(rst.next()) { out.println("bookName:"+rst.getInt("RSS_ID")); out.println("<br>"); } %> if (rs!=null){....} 把SQL打印出来把SQL直接在查询分析器中运行一下就知道了 学习 把可能出现的NULL的结果打印出来看一下在进行修改原程序了 JSP网站如何做301重定向? 问一个JS操作表格取值问题。。。。。。。。。。 判断有多少用户在线 想请教高手们一个问题,就是关于如何实现JSP面面读取IC卡的卡号数据。谢谢! freemarker往FTP上输出静态文件? 有错误了: HTTP Status 404 - /MyBriger/web/NewUser 我在tomcat3下写的程序调试没问题,现在升级的tomcat5。说我使用的jean有错?什么原因呢? JSP 文本框自动提交查询并显示 关于将中文写入文本文件时,写入的是乱码的问题 关于echart 兼容IE的问题 多种浏览器中显示问题 初学者写了一段执行不了的代码,请nn帮忙
exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NullPointerException
book.rssreader.RssUtil.renderRSSList(RssUtil.java:15)
org.apache.jsp.RSSReader_jsp._jspService(org.apache.jsp.RSSReader_jsp:194)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)////////////////////////////////////////////代码package book.rssreader;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;public class RssUtil {
public static String renderRSSList ()
{
StringBuffer buf = new StringBuffer();
String strSQL = "select rss_id from rss where active_status='Y'";//查询所有的RSS记录
Vector v = new Vector ();
ResultSet rs = DbManager.getResultSet(strSQL);//执行查询语句,得到记录集
try {
while (rs.next())//循环记录集,添加到向量v中
{
v.add(new RssEO(rs.getInt("RSS_ID")));
}
} catch (SQLException e) {
e.printStackTrace();
}
for (int i=0;i<v.size();i++)//输出HTML代码
{
RssEO rss = (RssEO)v.get(i);
buf.append("<a href=\"javascript:readRSS('"+rss.getRssURL()+"', 'rightcolumn');\">"+rss.getRssName()+"</a>");
}
return buf.toString();
}
}
这个地方出错?
我只希望能解决问题 现在脑子好不舒服 我发源文件给你好不?
DbManager.getResultSet(strSQL); 返回了null
bSuccess = false;
}if (bSuccess)//如果执行成功,则返回rs
return rs;
else
return null;
你只catch了SQLException 多自己想想
return rs;
else
return null;
明显返回了null
MyEclipse 里完全没错误 我没一点头绪~~!
MyEclipse 里完全没错误 我没一点头绪~~!没QQ
本来就没错误
是运行时异常 只能说程序编的不严谨 bSuccess是false 自己查查为什么bSuccess为false
我现在是在看`` 想不出原因啊``
问题还是一样`` 难道SQL语句出了问题? 也不会啊 我自己设计的一个JSP 能正常运行`
<!--测试数据-->
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page import="book.rssreader.*" %>
<%@ page import="java.sql.*"%>
<%
DbManager ds=new DbManager();
Connection conn = ds.getConnection();
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select rss_id from RssReader where active_status='Y'");
out.println("以下是从数据库中读取出来的数据");
out.println("<br>");
while(rst.next())
{
out.println("bookName:"+rst.getInt("RSS_ID"));
out.println("<br>");
}
%>
{
....
}
把可能出现的NULL的结果打印出来看一下
在进行修改原程序了