| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1825 人关注过本帖
标题:[求助] 帮忙看看这个错误大概是什么意思??
取消只看楼主 加入收藏
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
 问题点数:0 回复次数:7 
[求助] 帮忙看看这个错误大概是什么意思??


偶是新手,刚看了点JSP的书
在测试数据库的时候出了这么一个错误信息,我实在看不懂错误是什么意思!!

有经验的朋友帮忙看看!!

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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

exception

org.apache.jasper.JasperException: Exception in JSP: /dbprogram.jsp:52

49: out.println("恭喜,表连接创建成功!");
50: %>
51:
52: <%
53: ResultSet RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25"); /*连接到数据库中的表EMPLOYEE上*/
54: String tt; /**号表示选择表中所有的列*/
55: String link; /*若选择其中的某几列可以将*号换成列标号*/


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:467)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.NullPointerException
org.apache.jsp.dbprogram_jsp._jspService(dbprogram_jsp.java:104)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.23

搜索更多相关主题的帖子: 数据库 Exception The JSP 
2007-03-18 22:52
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 

谢谢各位!!
我没发现有空指针异常在程序哪个地方??
帮忙看一下
下面是代码:

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<!--导入结束-->
<html>
<head>
<title>数据库连接实验</title>
</head>
<body>
<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:try";//“try”的意思就是与刚才设置的数据源名对应;
Connection Con = null;
Statement Stmt = null;
try
{
try /*加载驱动程序*/
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
out.print("Connect to Database error: " + e.getMessage());
}
try /*建立连接*/
{
Con = DriverManager.getConnection(sConnStr,"sa","");
}
catch(SQLException e)
{
out.print(e.toString());
}

Stmt = Con.createStatement(); /*创建JDBC声明*/
String query="CREATE TABLE GUEST" + /*在数据库中创建新的表*/
"(NUM VARCHAR(32),"+
"USERNAME TEXT,"+
"CONTENT TEXT,"+
"PASSWORD INTEGER,"+
"TOTAL INTEGER,"+
"REALNAME TEXT)";
Stmt.executeUpdate(query); /*更新数据库*/
}
catch (Exception e) {}
out.println("恭喜,表连接创建成功!");
%>

<%
ResultSet RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25"); /*连接到数据库中的表EMPLOYEE上*/
String tt; /**号表示选择表中所有的列*/
String link; /*若选择其中的某几列可以将*号换成列标号*/
String makeStr; /*WHERE语句表示条件选择*/
out.print("<table border=2 style=color:blue >");
while (RS.next()) {
out.print("<tr><td>");
tt = RS.getString("ename"); /*查询表中NUM字段的内容,字段内容可能使数组,默认列输出*/
out.print(tt);
out.print("</td><td>");
tt = RS.getString("esex");
out.print(tt);
out.print("</td><td>");
tt = RS.getString("eage");
out.print(tt);
out.print("</td><td>");
tt=RS.getString("egrade");
out.print(tt);
out.print("</td><td>");
}
out.print("</table>");
RS.close();
out.println("数据查询成功!");
%>

<% /*在数据库中添加数据*/
String sql="INSERT INTO EMPLOYEE VALUES ('5','aaa','m',54,'hehe')";
Stmt.executeUpdate(sql);
out.println("添加数据成功!");
%>
</body>
</html>


The future is ours to build!
2007-03-19 09:36
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 

 代码52行是红色的部分,我还是没看懂是什么问题

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<!--导入结束-->
<html>
<head>
<title>数据库连接实验</title>
</head>
<body>
<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:try";//“try”的意思就是与刚才设置的数据源名对应;
Connection Con = null;
Statement Stmt = null;
try
{
try /*加载驱动程序*/
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
out.print("Connect to Database error: " + e.getMessage());
}
try /*建立连接*/
{
Con = DriverManager.getConnection(sConnStr,"sa","");
}
catch(SQLException e)
{
out.print(e.toString());
}

Stmt = Con.createStatement(); /*创建JDBC声明*/
String query="CREATE TABLE GUEST" + /*在数据库中创建新的表*/
"(NUM VARCHAR(32),"+
"USERNAME TEXT,"+
"CONTENT TEXT,"+
"PASSWORD INTEGER,"+
"TOTAL INTEGER,"+
"REALNAME TEXT)";
Stmt.executeUpdate(query); /*更新数据库*/
}
catch (Exception e) {}
out.println("恭喜,表连接创建成功!");
%>

<%
ResultSet RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25"); /*连接到数据库中的表EMPLOYEE上*/

String tt; /**号表示选择表中所有的列*/
String link; /*若选择其中的某几列可以将*号换成列标号*/
String makeStr; /*WHERE语句表示条件选择*/
out.print("<table border=2 style=color:blue >");
while (RS.next()) {
out.print("<tr><td>");
tt = RS.getString("ename"); /*查询表中NUM字段的内容,字段内容可能使数组,默认列输出*/
out.print(tt);
out.print("</td><td>");
tt = RS.getString("esex");
out.print(tt);
out.print("</td><td>");
tt = RS.getString("eage");
out.print(tt);
out.print("</td><td>");
tt=RS.getString("egrade");
out.print(tt);
out.print("</td><td>");
}
out.print("</table>");
RS.close();
out.println("数据查询成功!");
%>

<% /*在数据库中添加数据*/
String sql="INSERT INTO EMPLOYEE VALUES ('5','aaa','m',54,'hehe')";
Stmt.executeUpdate(sql);
out.println("添加数据成功!");
%>
</body>
</html>


The future is ours to build!
2007-03-19 09:55
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 

谢谢!
真的有点烦!!
我把数据库的设置改了一下!配置数据源的时候采用的是Windows身份认证了
Con = DriverManager.getConnection(sConnStr,"sa",""); 也改为了
Con = DriverManager.getConnection(sConnStr);


改后的代码如下:

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<!--导入结束-->
<html>
<head>
<title>数据库连接实验</title>
</head>
<body>
<%
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:try";//“try”的意思就是与刚才设置的数据源名对应;
Connection Con = null;
Statement Stmt = null;
try
{
try /*加载驱动程序*/
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
out.print("Connect to Database error: " + e.getMessage());
}
try /*建立连接*/
{
Con = DriverManager.getConnection(sConnStr); /*代码修改的地方*/
}
catch(SQLException e)
{
out.print(e.toString());
}

Stmt = Con.createStatement(); /*创建JDBC声明*/
String query="CREATE TABLE GUEST" + /*在数据库中创建新的表*/
"(NUM VARCHAR(32),"+
"USERNAME TEXT,"+
"CONTENT TEXT,"+
"PASSWORD INTEGER,"+
"TOTAL INTEGER,"+
"REALNAME TEXT)";
Stmt.executeUpdate(query); /*更新数据库*/
}
catch (Exception e) {}
out.println("恭喜,表连接创建成功!");
%>

<%
ResultSet RS= Stmt.executeQuery("SELECT * FROM EMPLOYEE WHERE eage<25"); /*连接到数据库中的表EMPLOYEE上*/
String tt; /**号表示选择表中所有的列*/
String link; /*若选择其中的某几列可以将*号换成列标号*/
String makeStr; /*WHERE语句表示条件选择*/
out.print("<table border=2 style=color:blue >");
while (RS.next()) {
out.print("<tr><td>");
tt = RS.getString("ename"); /*查询表中NUM字段的内容,字段内容可能使数组,默认列输出*/
out.print(tt);
out.print("</td><td>");
tt = RS.getString("esex");
out.print(tt);
out.print("</td><td>");
tt = RS.getString("eage");
out.print(tt);
out.print("</td><td>");
tt=RS.getString("egrade");
out.print(tt);
out.print("</td><td>");
}
out.print("</table>");
RS.close();
out.println("数据查询成功!");
%>

<% /*在数据库中添加数据*/
String sql="INSERT INTO EMPLOYEE VALUES ('5','aaa','m',54,'hehe')";
Stmt.executeUpdate(sql);
out.println("添加数据成功!");
%>
</body>
</html>


现在出的错误变成这样的了:

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

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

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.NullPointerException
org.apache.jsp.dbprogram_jsp._jspService(dbprogram_jsp.java:104)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.23


劳驾帮忙看看这错误又是什么意思呢???  还是空指针??
如果是空指针,那又是哪行代码了呢??


The future is ours to build!
2007-03-19 11:09
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 
以下是引用lgdcky在2007-3-19 14:05:47的发言:

第52行con=null;当然有空指针异常啊!

修改后的错误也没说空指针在52行呀?

再说con在这不赋值了吗???

try /*建立连接*/
{
Con = DriverManager.getConnection(sConnStr);
}
catch(SQLException e)
{
out.print(e.toString());
}


The future is ours to build!
2007-03-19 17:30
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 
多谢千里!!
可是这个页面代码有错,没法看到输出的结果呀!
out.println也就不起作用了!


难道这段代码有其他的方法可以调试,我不知道,可以告之吗???

The future is ours to build!
2007-03-19 18:27
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 

谢谢angeloc的指教!

The future is ours to build!
2007-03-20 11:57
梧桐
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2005-11-17
收藏
得分:0 
以下是引用黄袖标在2007-3-22 14:12:08的发言:
首先一看500错误代号,99%是jsp的错误,楼主细心点查查jsp的错吧

是吗??这个还一真的没听过,强!!
那驱动程序出差错呢,错误代码是什么打头呢??
这几天都是一样的错误!!
没连数据库,页面都很正常显示,连数据库就总是报错~~


The future is ours to build!
2007-03-23 11:17
快速回复:[求助] 帮忙看看这个错误大概是什么意思??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020812 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved