简体   繁体   English

ArrayList的添加方法抛出org.apache.jasper.JasperException:java.lang.NullPointerException

[英]Add method of ArrayList throws org.apache.jasper.JasperException: java.lang.NullPointerException

The add method of ArrayList throws org.apache.jasper.JasperException: java.lang.NullPointerException when its called in cart.jsp . ArrayList的add方法在cart.jsp被调用时抛出org.apache.jasper.JasperException: java.lang.NullPointerException Please Please see my code. 请查看我的代码。 Thanks. 谢谢。

@Remote
public interface BookSessionBeanRemote {
    void persist(Book b);
    List<Book> getBookContent();
    Book getBook(int id);
}

@Stateful
public class CartBean implements CartBeanRemote {

Book b = new Book();
private ArrayList<Book> bk;

@PostConstruct
public void initialize()
{
    bk = new ArrayList<Book>();
}
@Override
public void addBook(Book b)throws Exception
{
    if(b==null)throw new Exception("Book is null");
    bk.add(b);
}
@Override
public void removeBook(int id)throws Exception
{
    BigDecimal bg = new BigDecimal(id);
    b.setBookid(bg);
    boolean result = bk.remove(b);
    if (result == false) 
    {
        throw new Exception("Book not in cart.");
    }
}
@Override
public ArrayList<Book> getContent()
{
    return bk;
}

}

cart.jsp cart.jsp

 <%! CartBeanRemote ct;  %>
        <%
                String path = (String)session.getAttribute("path");
                String bkid = (String)session.getAttribute("bookid");
                String bookname = (String)session.getAttribute("bookname");
                String author = (String)session.getAttribute("author");
                String price= (String)session.getAttribute("price");
               // out.println(path);
              //  out.println(bkid);
              //  out.println(bookname);
              //  out.println(author);
               // out.println(price);

                 BigDecimal bid = new BigDecimal(bkid);
                 BigInteger pr = new BigInteger(price);

                   if(session.isNew())
                    {
                        Context ctx = new InitialContext();
                        ct = (CartBeanRemote)ctx.lookup(CartBeanRemote.class.getName());
                        session.setAttribute("ct", ct);
                    }
                    ct = (CartBeanRemote)session.getAttribute("ct");
                    Book book = new Book();
                    book.setAuthor(author);                        
                    book.setImagepath(path);
                    book.setName(bookname);
                    book.setBookid(bid);
                    book.setPrice(pr);

                    ct.addBook(book);
                   // out.println(book.getAuthor());
                   // out.println(book.getBookid());
                   // out.println(book.getPrice());

                  //  response.sendRedirect("index.jsp");

    %>

Somewhere your code is causing a NullPointerException. 您的代码在某处导致NullPointerException。 From your description, I'd guess that your ArrayList is null when you try to add something to it. 根据您的描述,当您尝试向其中添加某些内容时,我猜想您的ArrayList为null。

When your code causes the NullPointerException, the JSP will catch it, and then wrap it in a JasperException before rethrowing that. 当您的代码导致NullPointerException时,JSP将捕获它,然后将其包装在JasperException中,然后再将其抛出。

Have a look at Throwable.getCause(). 看看Throwable.getCause()。 Also see the constructor for Exception, which looks like Exception(String message, Throwable cause). 另请参见Exception的构造函数,其外观类似于Exception(String message,Throwable cause)。 It is common practice in Java to catch one type of Exception, and wrap it in a new Exception with additional information. 在Java中,通常的做法是捕获一种类型的Exception,然后将其包装在带有其他信息的新Exception中。 This may happen multiple times before the Exception is propogated to a point where the code can do something meaningful to deal with it. 在将异常传播到代码可以做一些有意义的事情之前,可能会发生多次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 异常org.apache.jasper.JasperException:java.lang.NullPointerException - Exception org.apache.jasper.JasperException: java.lang.NullPointerException 异常 org.apache.jasper.JasperException:java.lang.NullPointerException 根本原因 java.langullException.N - exception org.apache.jasper.JasperException: java.lang.NullPointerException root cause java.lang.NullPointerException Java EJB org.apache.jasper.JasperException:java.lang.NullPointerException - Java EJB org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.JasperException:java.lang.NullPointerException:未找到模块“ null” - org.apache.jasper.JasperException: java.lang.NullPointerException: Module 'null' not found HTTP状态500 - org.apache.jasper.JasperException:java.lang.NullPointerException - HTTP Status 500 - org.apache.jasper.JasperException: java.lang.NullPointerException HTTP状态500:org.apache.jasper.JasperException:java.lang.NullPointerException - HTTP Status 500: org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.JasperException:java.lang.NumberFormatException:null - org.apache.jasper.JasperException: java.lang.NumberFormatException: null org.apache.jasper.JasperException: java.lang.ClassNotFoundException - org.apache.jasper.JasperException: java.lang.ClassNotFoundException org.apache.jasper.JasperException - org.apache.jasper.JasperException HTTP状态500-org.apache.jasper.JasperException:javax.servlet.ServletException:java.lang.NoClassDefFoundError - HTTP Status 500 - org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM