at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
at java.lang.Thread.run(Thread.java:534)
是什么错误? 不知道怎么解决了,高手们帮帮忙,看下是哪里的问题了,谢谢!

解决方案 »

  1.   

    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:534)
    root cause java.lang.NullPointerException
    at book.ShoppingCart.add(ShoppingCart.java:22)
    at org.apache.jsp.Add_jsp._jspService(Add_jsp.java:111)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
    at java.lang.Thread.run(Thread.java:534)
      

  2.   

    把需要的jar文件拷贝到tomcat——》common——》bin下试试
      

  3.   

      谢谢您的回答.
          我的不是jar文件,没有打包的class文件了,我直接放在common\classes下来
    上面的是不是两个错误,第二个好象是add方法有变量末初始化,第一个错误就不
    知道了,是不是这样?
         
      

  4.   

    root   cause  java.lang.NullPointerException
    at   book.ShoppingCart.add(ShoppingCart.java:22) 

    就这一个错误,没有第二个!!!
    把这个错误解决了就行了。在你ShoppingCart.java的22行出现了空指针,肯定是这一行引用的某个变量没初始化。修改一下就行了
      

  5.   

       哦, 我正在找那个错误了.  但是我就觉得没得问题才对.也没法测试一下了. 
    JAVABean里肯定是没有问题的了.是调用时没有传参数过去了. 但是我肯定调用的时候也没有问题了.
      

  6.   

    我把代码贴出来,您们看一下嘛,是哪里有问题?package book;
    import java.util.*;
    import java.io.*;
    import java.util.HashMap;
    public class ShoppingCart implements Serializable{
    private HashMap items;
    private int itemAmount;/*购物车中的数量*/
    public void ShoppingCart(){
    items=new HashMap();
    itemAmount=0;
    }
    /*向购物车中添加一个商品*/
    public synchronized void add(String BookID,Book book,int num){
    if(items.containsKey(BookID)){
    items.remove(BookID);
    ShoppingItem newitem=new ShoppingItem(book,num);
    }else{
    ShoppingItem newitem=new ShoppingItem(book,num);
    itemAmount++;
    }
    }
    <%@ page  pageEncoding="GB2312" %>
    <%@ page import="java.sql.*,book.*" %>
    <%@ include file="datainit.jsp" %>
    <html><head><title>Buy</title></head>
    <body>
    <jsp:useBean id="shopcart" scope="session" class="ShoppingCart"/>
    <% 
    String addpid=request.getParameter("add");
    Book temp=null;
    int count=1;
    String confirm=request.getParameter("confirm");

    if(confirm==null || confirm.equals(""))
    {
    confirm="none";
    }
    if(addpid!=null && (!addpid.equals("")))
    {
    temp=(Book)session.getAttribute(addpid);
    if(temp==null || temp.equals(""))
    {
    response.sendRedirect("index.jsp");
    }
    }
    else
    {
    response.sendRedirect("index.jsp");
    }
    if(confirm.equalsIgnoreCase("true"))
    {
    if(request.getParameter("amount")!=null)
    {
    count=Integer.parseInt(request.getParameter("amount").trim());
    }
    shopcart.add(addpid,temp,count);
    response.sendRedirect("index.jsp");
    }
    else if(confirm.equals("false"))
    {
    session.removeAttribute(addpid);
    response.sendRedirect("index.jsp");
    }
    else
    {
     %>
     <form action="Add.jsp " method="get">
     <table border="2" align="center">
      <thead align="center">
      <h2>修改购买商品数量并把它们加入到你的购物车</h2>
      </thead>
      <tr>
      <td>名称</td>
      <td>市场价格</td>
      <td>普通会员</td>
      <td>白金会员</td>
      <td>钻石会员</td>
      <td>counts</td>
     
      </tr>
      <tr>
      <td><%= temp.getBookName() %></td>
      <td><%= temp.getRealPrice() %></td>
      <td><%= temp.getRealPrice()*0.9 %></td>
      <td><%= temp.getRealPrice()*0.8 %></td>
      <td><%= temp.getRealPrice()*0.7 %></td>
      <td><input type="text" size="2" name="amount" value=<%= count %>></td>
      </tr>
     
      <input type="hidden" name="confirm" value=true>
      <input type="hidden" name="add" value=<%= addpid %>>
      <tr>
      <td colspan="2" align="center">
      <a href="index.jsp">先不买这个商品</a>
      </td>
      <td>
      <a href="Showcart.jsp">查看购物车</a>
      </td>
      <td colspan="3" align="center">
        <input type="submit" size="2" name="buy" value="确定购买"></input>
      </td>
      </tr>
     </table>
     </form>
      <% } %>
    </body>
    </html>就是这样三个参数是不是有没有初始化的shopcart.add(addpid,temp,count);
      

  7.   

    检查你的addpid是否取到值了,另外你的temp也检查一下是不是null。直接在
                shopcart.add(addpid,temp,count);
                response.sendRedirect("index.jsp"); 前面加:
    System.out.println("AddPid :"+addpid+",temp :"+temp);看看是不是其中的一个是空值。
    如果上面两个都不是空值,将java文件的第22行单独帖上来
      

  8.   

         谢谢您的回答.
    这样做根本就不能测试其值是否为空.
       是单击"确定购买"后才会再次执行上面的代码.
    我把"System.out.println("AddPid :"+addpid);"
    放到"String addpid=request.getParameter("add");"后面也不能测试了.
    /*向购物车中添加一个商品*/
        public synchronized void add(String BookID,Book book,int num){
            if(items.containsKey(BookID)){
                items.remove(BookID);
                ShoppingItem newitem=new ShoppingItem(book,num);
                items.put(pid,newitem);
            }else{
                ShoppingItem newitem=new ShoppingItem(book,num);
                items.put(pid,newitem);
                itemAmount++;
            }
        }
    22行是: if(items.containsKey(BookID)){
       
      

  9.   

          我在前一个网页单击购买时,转到下一个页面
    这是URL为:http://localhost:8080/BookShopping/Add.jsp?add=7810824813,
    网面信息为:  
    单击"确定购买"后就有这样的错误. 是不是因为再次调用String addpid=request.getParameter("add");时
    addpid的值没有了?
      

  10.   

    可是肯定的是你的
    String addpid=request.getParameter("add");
    根本就没取到值,因为它始终是空值。原因就在于你第一次给它赋值就是null,以后每次都是null
    <input type="hidden" name="add" value=<%= addpid %>>要记得给初始值,也就是用户第一次浏览这个页面的时候没有任何addpid信息,这个时候你要给它一个初始值!!!
      

  11.   

    谢谢您的回答..
      addpid第一次是有值的了.. 后面也没有另外给赋值了.
    就是弄不懂怎么回事, 因为是按照老师讲的写的.老师运行都没有
    错误啊 .
      
      

  12.   

      今天去问老师了.问题不是出在页面上了.而在JAVABean 中
     但是这个问题也非常搞笑了.先看下面的代码了:
    package book;
    import java.util.*;
    import java.io.*;
    import java.util.HashMap;
    public class ShoppingCart implements Serializable{
        private HashMap items;
        private int itemAmount;/*购物车中的数量*/
        public void ShoppingCart(){
            items=new HashMap();
            itemAmount=0;
        }
        /*向购物车中添加一个商品*/
        public synchronized void add(String BookID,Book book,int num){
            System.out.println("out");
            if(items.containsKey(BookID)){
                System.out.println("if");
                items.remove(BookID);
                ShoppingItem newitem=new ShoppingItem(book,num);
                items.put(pid,newitem);
            }else{
                System.out.println("else");
                ShoppingItem newitem=new ShoppingItem(book,num);
                items.put(pid,newitem);
                itemAmount++;
            }
            System.out.println("end");
        }    是这样的了.在JSP中调用add方法时,出现上面的错误,但看输出的:
           只有输出"out"! 而"if"和"else","end"都没有一个会输出来,
    郁闷不?  我现在想是不是我的哪个类定义的有问题的了.
       也就是说我的JavaBean的add有問題的了。正在解决中了....