大家帮忙看一下,java.lang.NullPointerException问题
我是初学者,在网上下了个"好易多网上书店"的源码,运行是出现一下问题,我看了好长时间也没弄懂问题出在哪? 请各位大侠帮忙看看!
出现如下错误提示:
Error 500--Internal Server Error
java.lang.NullPointerException
at org.pan.web.bookclasslist.excute(bookclasslist.java:38)
at jsp_servlet._bookstore.__index._jspService(__index.java:154)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:431)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
jsp调用如下:
<jsp:useBean id="classlist" scope="page" class="org.pan.web.bookclasslist" />
<% if (classlist.excute()){
for (int i=0;i<classlist.getClasslist().size();i++){
bookclass bc = (bookclass) classlist.getClasslist().elementAt(i); %>
bookclasslist的源码如下:
package org.pan.web;
import java.sql.*;
import java.util.Vector;
import org.pan.util.*;
import org.pan.web.book.bookclass;
public class bookclasslist extends DataBase {
private Vector classlist;
public bookclasslist() throws Exception{
super();
}
public Vector getClasslist() {
return classlist;
}
public String getSql() {
String sqlStr = "select id,classname from my_Bookclass order by id";
return sqlStr;
}
public boolean excute() throws Exception {
int id = 0;
String classname = "";
int rscount = 0;
try {
rs = stmt.executeQuery(getSql());
rscount = stmt.getMaxRows();
classlist = new Vector(rscount+1);
classlist.clear();
while (rs.next()){
id = rs.getInt("id");
classname = rs.getString("classname");
bookclass bc = new bookclass(id,classname);
classlist.addElement(bc);
}
rs.close();
return true;
}
catch (SQLException sqle){
System.out.println(sqle);
return false;
}
}
};
DataBase代码如下:
package org.pan.web;
import java.sql.*;
import org.pan.util.*;
public class DataBase {
protected Connection conn = null; //Connection接口
protected Statement stmt = null; //Statement接口
protected ResultSet rs = null; //记录结果集
protected PreparedStatement prepstmt = null; //PreparedStatement接口
protected String sqlStr; //sql String
protected boolean isConnect=true; //与数据库连接标识
public DataBase() {
try
{
sqlStr = "";
DBConnectionManager dcm = new DBConnectionManager();
conn = dcm.getConnection();
stmt = conn.createStatement();
}
catch (Exception e)
{
System.out.println(e);
isConnect=false;
}
}
public Statement getStatement() {
return stmt;
}
public Connection getConnection() {
return conn;
}
public PreparedStatement getPreparedStatement() {
return prepstmt;
}
public ResultSet getResultSet() {
return rs;
}
public String getSql() {
return sqlStr;
}
public boolean execute() throws Exception {
return false;
}
public boolean insert() throws Exception {
return false;
}
public boolean update() throws Exception {
return false;
}
public boolean delete() throws Exception {
return false;
}
public boolean query() throws Exception {
return false;
}
public void close() throws SQLException {
if ( stmt != null )
{
stmt.close();
stmt = null;
}
conn.close();
conn = null;
}
};
DBConnectionManager 类的代码:
package org.pan.util;
import java.sql.*;
public class DBConnectionManager {
private String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //"oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bookstore"; //"jdbc:oracle:thin:@127.0.0.1:1521:oracle";
private String user = "sa";
private String password = "sa";
public void setDriverName(String newDriverName) {
driverName = newDriverName;
}
public String getDriverName() {
return driverName;
}
public void setUrl(String newUrl) {
url = newUrl;
}
public String getUrl() {
return url;
}
public void setUser(String newUser) {
user = newUser;
}
public String getUser() {
return user;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getPassword() {
return password;
}
public Connection getConnection() {
try {
Class.forName(driverName);
return DriverManager.getConnection(url, user, password);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
// DBConnectionManager DBConnectionManager1 = new DBConnectionManager();
try{
DBConnectionManager dcm = new DBConnectionManager();
Connection conn = dcm.getConnection();
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from my_BookAdminuser");
// stmt = conn.createStatement();
while(rs.next()){
System.out.print("名称: "+rs.getString(1));
System.out.print("\tpassword: "+rs.getString(2));
System.out.println();
}
//stmt.executeUpdate( "insert into my.txt values ('Ruby',27,'网络部')"); //*/
}catch(Exception e){
e.printStackTrace();
}
}
}