我买了一本书,里面光盘里带了一个程序,但是提示错误为:是不是我有什么地方配置错了?description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1002)
org.apache.jsp.index_jsp._jspService(index_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.lang.NullPointerException
org.apache.jsp.left_jsp._jspService(left_jsp.java:83)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1002)
org.apache.jsp.index_jsp._jspService(index_jsp.java:71)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.

解决方案 »

  1.   

    昏~~引起这个的原因很多啦  多半是web.xml问题~
      

  2.   

    无论谁回答,都得首先把问题讲清楚呀?估计是JSP文件的语法错误,导致了编译错误的。
    好好检查.那个left.JSP文件是不是有错误,另外,空指针,估计是因为有些条件,不存在.
    比如,需要登陆,需要其他页面或者Servlet等定向到该页面的,你直接访问了。当然就会
    出现空指针.好好检查一下。好多都不是问题.
      

  3.   

    还有一个问题请教诸位,我的另一个程序调试时出现这样的错误提示是什么原因造成的呢javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]?????????????
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
    org.apache.jsp.lvyou.input_jsp._jspService(input_jsp.java:158)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]?????????????
    com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
    com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
    com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
    com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source)
    org.apache.jsp.lvyou.input_jsp._jspService(input_jsp.java:147)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    note The full stack trace of the root cause is available in the Tomcat logs.
      

  4.   

    [Microsoft][SQLServer 2000 Driver for JDBC]应该安装 sqlserver sp4然后安装jdbc驱动~
      

  5.   

    java.lang.NullPointerException  空指针错误~
      

  6.   

    我的sqlserver sp4和jdbc驱动早就安装好了,问题是我现在找不出何位置空指针。以下是index.jsp
    <%@ page contentType="text/html; charset=gb2312" language="java"
     import="java.sql.*" %>
    <jsp:useBean id="connDB" scope="page" class="beans.connDB"/>
    <jsp:useBean id="chStr" scope="page" class="beans.chStr"/>
    <%
    ResultSet rs_newbook=connDB.executeQuery("select top 5 * from tb_bookinfo where newbook=1 order by INTime desc");
    ResultSet rs_sort=connDB.executeQuery("select * from (select top 10 * from ( select sum(number) as amount,ISBN from tb_Order_detail group by ISBN )as tab order by amount desc) o inner join tb_bookinfo b on o.ISBN=b.ISBN order by o.amount desc");
    ResultSet rs_book=connDB.executeQuery("select * from tb_bookinfo where commend=1");
    %>
    <html>
    <head>
    <title>网上图书超市</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <link href="CSS/style.css" rel="stylesheet">
    </head>
    <body>
    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td>
    <table width="777" height="768"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
      <tr>
        <td valign="top">
    <jsp:include page="Top.jsp"/>
    <table width="100%" height="330"  border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td width="26%" valign="top">
     <jsp:include page="left.jsp"/> 
    </td>
              <td width="5" valign="top" background="Images/Cen_separate.gif"></td>
              <td width="73%" valign="top"><table width="100%" height="272"  border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td height="52" colspan="3" background="Images/index_10.gif">
      <jsp:include page="search.jsp"/>
                  </td>
                </tr>
                <tr>
                  <td width="73%" height="220" valign="top">
       <table width="100%" height="126"  border="0" cellpadding="0" cellspacing="0">
      <%
      rs_book.last();
      int RecordCount=rs_book.getRow();  //获取记录总数
      rs_book.first();
      for(int i=1;i<RecordCount+1;i++){
      //注意:此处必须按照字段的顺序读取
       String ISBN=rs_book.getString("ISBN");
       String bookname=rs_book.getString("BookName");
    String publisher=rs_book.getString("publisher");
    String author=rs_book.getString("Writer");
    int price=rs_book.getInt("Price");
    String cover=rs_book.getString("cover");
      if ((i%2)!=0){
      %>
        <tr>
                      <td><table width="100%" height="123"  border="0" cellpadding="0" cellspacing="0">
                        <tr>
                          <td width="43%" align="center"><img src="manage/cover/<%=cover%>" width="76" height="110"></td>
                          <td width="57%"><table width="100%" height="119"  border="0" cellpadding="0" cellspacing="0">
                            <tr>
                              <td><%=bookname%></td>
                            </tr>
                            <tr>
                              <td><%=publisher%></td>
                            </tr>
                            <tr>
                              <td>作者:<%=author%></td>
                            </tr>
                              <td>定价:<%=String.valueOf(price)%>(元)</td>
                            </tr>
                              <td align="center"><%if(session.getAttribute("UserName")!=null){%>
      <input name="Submit5" type="submit" class="btn_grey" value="购买" onClick="window.location.href='cart_Add.jsp?ISBN=<%=ISBN%>'">
      <%}%>
                                <input name="Submit6" type="submit" class="btn_grey" value="查看" onClick="window.location.href='book_detail.jsp?ISBN=<%=ISBN%>'"></td>
                            </tr>
                          </table></td>
                        </tr>
                      </table></td>
      <% }else{%>
                      <td><table width="100%" height="123"  border="0" cellpadding="0" cellspacing="0">
                        <tr>
                          <td width="43%" align="center"><img src="manage/cover/<%=cover%>" width="76" height="110"></td>
                          <td width="57%" align="center">                        <table width="100%" height="119"  border="0" cellpadding="0" cellspacing="0">
                            <tr>
                              <td><%=bookname%></td>
                            </tr>
                            <tr>
                              <td><%=publisher%></td>
                            </tr>
                            <tr>
                              <td>作者:<%=author%></td>
                            </tr>
                            <tr>
                              <td>现价:<%=String.valueOf(price)%>(元)</td>
                            </tr>
                            <tr>
                              <td align="center"><%if(session.getAttribute("UserName")!=null){%>
      <input name="Submit5" type="submit" class="btn_grey" value="购买" onClick="window.location.href='cart_Add.jsp?ISBN=<%=ISBN%>'">
      <%}%>
                                <input name="Submit62" type="submit" class="btn_grey" value="查看" onClick="window.location.href='book_detail.jsp?ISBN=<%=ISBN%>'"></td>
                            </tr>
                          </table></td>
                        </tr>
                      </table></td> <%
    }
    rs_book.next();
    }%>
         </tr>
                  </table>
      </td>
                  <td width="5" background="Images/Cen_separate.gif">&nbsp;</td>
                  <td valign="top"><table width="100%" height="55"  border="0" cellpadding="0" cellspacing="0">
                    <tr>
                      <td align="right"><img src="Images/index_12.gif" width="161" height="46"></td>
                    </tr>
                    <tr>
                  <td width="86%" height="100" valign="top" class="tableBorder_B">
      <%while(rs_newbook.next()){
      String ISBN=rs_newbook.getString("ISBN");
      String BookName=rs_newbook.getString("BookName");
      %>
      <table width="100%" height="21"  border="0" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="9%"><img src="Images/greendot.gif" width="11" height="13"></td>
                      <td width="91%" style="padding:5px;"><a href="book_detail.jsp?ISBN=<%=ISBN%>"><%=BookName%></a></td>
                    </tr>
                  </table>
      <%}%>
      </td>
                    </tr>
                  </table>
                    <table width="100%" height="55"  border="0" cellpadding="0" cellspacing="0">
                      <tr>
                        <td align="right"><img src="Images/index_16.gif" width="161" height="48"></td>
                      </tr>
                      <tr>
                                      <td width="86%" height="100" valign="top" class="tableBorder_B">
      <%while(rs_sort.next()){
      String ISBN=rs_sort.getString("ISBN");
      String BookName=rs_sort.getString("BookName");
      %>
      <table width="100%" height="21"  border="0" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="9%"><img src="Images/greendot.gif" width="11" height="13"></td>
                      <td width="91%" style="padding:5px;"><a href="book_detail.jsp?ISBN=<%=ISBN%>"><%=BookName%></a></td>
                    </tr>
                  </table>
      <%}%>
      </td>
                      </tr>
                    </table></td>
                </tr>
              </table></td>
            </tr>
          </table>
          <jsp:include page="copyright.jsp"/>
        </td>
      </tr>
    </table>
    </td>
      </tr>
    </table>
    </body>
    </html>
      

  7.   

    下面是可能出空指针问题的left.jsp,请高手帮我看一下那里有空指针错误
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <jsp:useBean id="connDB" scope="page" class="beans.connDB"/>
    <jsp:useBean id="chStr" scope="page" class="beans.chStr"/>
    <script language="javascript">
    function checkU(myform){
    if(myform.username.value==""){
    alert("请输入用户名!");myform.username.focus();return;
    }
    if(myform.PWD.value==""){
    alert("请输入密码!");myform.PWD.focus();return;
    }
    myform.submit();
    }
    </script>
    <%
    ResultSet rs_bbs=connDB.executeQuery("select * from tb_BBS");
    ResultSet rs_poll=connDB.executeQuery("select * from tb_poll");
      if(session.getAttribute("UserName")==null){%>
      <form name="form1" method="post" action="Login_U.jsp">
      <table width="100%" height="99"  border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="8%">&nbsp;</td>
                  <td width="92%" height="112" valign="top" background="Images/index_09.gif"><table width="100%"  border="0" cellpadding="0" cellspacing="0">
                    <tr>
                      <td width="8%" height="20">&nbsp;</td>
                      <td width="81%">&nbsp;</td>
                      <td width="11%">&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="24" align="center">用户名                    
                        <input name="username" type="text" class="txt_grey" id="username" size="16"></td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="24" align="center">密&nbsp;&nbsp;码                    
                        <input name="PWD" type="password" class="txt_grey" id="PWD" size="16" onKeydown="if(event.keyCode==13) form1.submit();"></td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="31" align="center">
                        <input name="Button" type="button" class="btn_grey" value="注册" onClick="window.location.href='register.jsp'">
                        &nbsp;
                        <input name="Submit2" type="button" class="btn_grey" value="登录" onClick="checkU(form1)">                    <input name="Submit3" type="reset" class="btn_grey" value="重置"></td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td align="center">&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                </tr>
              </table>
      </form>
      <%}else{%>
      <table width="100%" height="99"  border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td width="8%">&nbsp;</td>
                  <td width="92%" height="112" valign="top" background="Images/index_09.gif">
    <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="8%" height="20">&nbsp;</td>
                      <td width="81%">&nbsp;</td>
                      <td width="11%">&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="24" align="center">[ <%=session.getAttribute("UserName")%>]您好!</td>
                      <td>&nbsp;</td>
                    </tr>
    <%ResultSet rs_grade=connDB.executeQuery("select * from tb_Member where Username='"+session.getAttribute("UserName")+"'");
    int grade=0;
    if(rs_grade.next()){
    grade=rs_grade.getInt("grade");
    }
    %>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="24" align="center">用户等级:<%=grade%></td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td height="31" align="center">                    &nbsp;
                        <input type="submit" name="Submit" value="修改资料" class="btn_grey" onClick="window.location.href='usermodify.jsp'">
                        <input name="Submit22" type="button" class="btn_grey" value="退出" onClick="window.location.href='logout.jsp'">                  </td>
                      <td>&nbsp;</td>
                    </tr>
                    <tr>
                      <td>&nbsp;</td>
                      <td align="center">&nbsp;</td>
                      <td>&nbsp;</td>
                    </tr>
                  </table>
      </td>
                </tr>
              </table>
      <%}%>
      <table width="100%" height="55"  border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td colspan="2" align="right"><img src="Images/index_14.gif" width="185" height="49"></td>
                </tr>
                <tr>
                  <td width="14%">&nbsp;</td>
                  <td width="86%" height="100" valign="top" class="tableBorder_B">
      <marquee direction="up" scrollamount="1" scrolldelay="1" height="100" onMouseMove="this.stop()" onMouseOut="this.start()">
      <%while(rs_bbs.next()){%>
      <table width="100%" height="21"  border="0" cellpadding="0" cellspacing="0">
                    <tr>
                      <td><%=chStr.convertStr(rs_bbs.getString("content"))%></td>
                    </tr>
                  </table>
      <%}%>
      </marquee>
      </td>
                </tr>
              </table>   <table width="100%"  border="0" cellpadding="0" cellspacing="0">
                <tr>
                  <td height="50" colspan="2" align="right"><img src="Images/index_18.gif" width="185" height="50"></td>
                </tr>
                <tr>
                  <td width="14%">&nbsp;</td>
                  <td width="86%" height="27">您需要哪方面的书籍?</td>
                </tr>
                <tr>
                  <td>&nbsp;</td>
                  <td height="100" valign="top"><form name="form3" method="post" action="poll_deal.jsp">
                    <table width="90%" height="151"  border="0" align="center" cellpadding="0" cellspacing="0">
    <%int f=0;
    while(rs_poll.next()){%>
                      <tr>
                        <td><input name="optionname" type="radio" class="noborder" value="<%=rs_poll.getString("optionName")%>"<%if(f==0){out.print(" checked");}%> > 
                         <%=rs_poll.getString("optionName")%></td>
                      </tr>
      <%f++;
      }%>
                      <tr>
                        <td><input name="Submit7" type="submit" class="btn_grey" value="投票"> <input name="Submit8" type="button" class="btn_grey" value="查看结果" onClick="window.location.href='poll_result.jsp';"></td>
                      </tr>
                    </table>
                  </form></td>
                </tr>
              </table>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      

  8.   

    先看一下数据库中是否有相应的记录,再一个就是象 String ISBN=rs_newbook.getString("ISBN");取出来的数据如果要调用先做一下是否空值的判断,if(ISBN==null||ISBN==""||ISBN.length()==0)then ISBN="";以前写的时候有时候也会出现这样莫名其妙的错误!
      

  9.   

    ResultSet rs_newbook=connDB.executeQuery("select top 5 * from tb_bookinfo where newbook=1 order by INTime desc");
    你的connDB这个类是个bean,里面有没有生成connection对象哦?
      

  10.   

    以下是这个bean的代码,我看不出有什么错误呀!!
    package beans;
    import java.sql.*;
    public class connDB{
                    Connection conn=null;
                    Statement stmt=null;
                    ResultSet rs=null;
            public connDB(){
                    try{
                            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
                    }catch(java.lang.ClassNotFoundException e){
                            System.err.println(e.getMessage());
                    }
            }
            public ResultSet executeQuery(String sql){
                    try{
                            conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_bookmanage;user=sa;password=");
                            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
                            rs=stmt.executeQuery(sql);
                    }catch(SQLException ex){
                            System.err.println(ex.getMessage());
                            }
                    return rs;
            }        public int executeUpdate(String sql){
                    int result=0;
                    try{
                            conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_bookmanage;user=sa;password=");
                            stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
                            result=stmt.executeUpdate(sql);
                    }catch(SQLException ex){
                            result=0;
                            }
                    return result;
            }
           public void close(){
             try {
               if (rs != null) rs.close();
             }
             catch (Exception e) {
               e.printStackTrace(System.err);
             }
             try {
               if (stmt != null) stmt.close();
             }
             catch (Exception e) {
               e.printStackTrace(System.err);
             }
             try {
               if (conn != null) {
                 conn.close();
               }
             }
             catch (Exception e) {
               e.printStackTrace(System.err);
             }
           }
            public String chStr_In(String str){
            if(str==null){
                    str="";
            }else{
                    try{
                            str=(new String(str.getBytes("iso-8859-1"),"GB2312")).trim();
                            str=str.replace('\'',(char)1);
                    }catch(Exception e){
                            e.printStackTrace(System.err);
                    }
            }
            return str;
    }
          public String chStr_Out(String str){
                  if(str==null){
                          str="";
                  }else{
                          try{
                                  str=str.replace((char)1,'\'');
                          }catch(Exception e){
                                  e.printStackTrace(System.err);
                          }
                  }
                  return str;
          }
    }
      

  11.   

    诸位大虾,我已经研究出来了,我的代码本身没有错误,显示空指针是因为我的1433端口被占用了,所以出现此情况,不知诸位高手有没有解决端口占用的好方法,怎么修改SQL server的端口设置