当前位置:编程学习 > JAVA >>

java.lang.NullPointerException at com.mipo.vo.ShoppingCartItem.<init>(ShoppingC

问题出现所在servlet:
private String add(HttpServletRequest req) {
String id = req.getParameter("entityId");
String quantityStr = req.getParameter("quantity");
System.out.println(quantityStr);

long quantity = 1;
if (Validator.isEmpty(quantityStr)){
//Validator是一个调用的类.isEmpty是类中的一个判断为空的方法
}
if (!Validator.isEmpty(quantityStr))
quantity = Long.parseLong(quantityStr);

Product product = productService.findById(id);
ShoppingCart cart = getCartFromSession(req);
System.out.println(quantity);
cart.addItem(product, quantity);//出错行84
return "addSuccess";
}

上面ShoppingCart类中的addItem方法:
public void addItem(Product product, long quantity) {
items.add(new ShoppingCartItem(product, quantity));//出错行16
}



上面所调用的ShoppingCartItem中的有参构造函数:
private Product product;
private long quantity;
private float cost;

public ShoppingCartItem(Product product, long quantity) {
this.product = product;
this.quantity = quantity;
this.cost = product.getPrice() * quantity;//出错行39
}

product类:
public class Product implements java.io.Serializable {

// Fields

private Integer id;
private String name;
private String description;
private Float price;
private Integer stock;
private Integer epcId;
private Integer childId;
private String fileName;

// Constructors

/** default constructor */
public Product() {
}

/** minimal constructor */
public Product(Integer id) {
this.id = id;
}

/** full constructor */
public Product(Integer id, String name, String description,
Float price, Integer stock, Integer epcId, Integer childId,
String fileName) {
this.id = id;
this.name = name;
this.description = description;
this.price = price;
this.stock = stock;
this.epcId = epcId;
this.childId = childId;
this.fileName = fileName;
}

// Property accessors

public Integer getId() {
return this.id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

public String getDescription() {
return this.description;
}

public void setDescription(String description) {
this.description = description;
}

public Float getPrice() {
return this.price;
}

public void setPrice(Float price) {
this.price = price;
}

public Integer getStock() {
return this.stock;
}

public void setStock(Integer stock) {
this.stock = stock;
}

public Integer getEpcId() {
return this.epcId;
}

public void setEpcId(Integer epcId) {
this.epcId = epcId;
}

public Integer getChildId() {
return this.childId;
}

public void setChildId(Integer childId) {
this.childId = childId;
}

public String getFileName() {
return this.fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}

}


报错:null是通过req.getParameter("quantity");获取到的quantity值,1是经过处理后打印的(System.out.println(quantity);)要传入84行的值
null
2013-5-2 21:21:06 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet Cart threw exception
java.lang.NullPointerException
at com.mipo.vo.ShoppingCartItem.<init>(ShoppingCartItem.java:39)
at com.mipo.vo.ShoppingCart.addItem(ShoppingCart.java:16)
at com.mipo.servlet.CartServlet.add(CartServlet.java:84)
at com.mipo.servlet.CartServlet.doPost(CartServlet.java:55)
at com.mipo.servlet.CartServlet.doGet(CartServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
1 --------------------编程问答-------------------- 你看下Product product = productService.findById(id);这句是否有值 --------------------编程问答-------------------- 还真是这句话,问题解决!谢谢.... --------------------编程问答-------------------- 再问下 <img src="files/" />想在/后写入
<c:forEach items="${sessionScope.cart.items}"  var="item" varStatus="status">中item中迭代的内容该怎么写入??? --------------------编程问答-------------------- 其实这种问题,debug一下都是可以解决的
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,