2011-9-15 2:33:40 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.xssj.struts.action.CarAction.doAdd(CarAction.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)public class CarAction extends DispatchAction {
private CarDAO carDAO;
public CarDAO getCarDAO() {
return carDAO;
}
public void setCarDAO(CarDAO carDAO) {
this.carDAO = carDAO;
}
public ActionForward findAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {


List list = carDAO.findAll();---------------------------出错位置 request.setAttribute("list", list);
        
        return mapping.findForward("list");

}
public ActionForward doAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
CarForm carForm = (CarForm) form;
Car car = carForm.getCar();
carDAO.save(car); ---------------------------出错位置
return mapping.findForward("add");
}
}用的struts1.2,断点看到页面参数可以取到,但是一执行save方法就出错,或者跳到findAll方法的时候也出错,只要进入相应的方法都出错,求解答,之前用普通action没问题,后来删掉了,新建了个DispatchAction,因为要增删改3个功能嘛,就一直报错,很是烦恼,新手,不得其解

解决方案 »

  1.   

    carDAO 你看下这个是不是没有被注入进来 是不是已经是 NULL了。
      

  2.   

    很显然, carDAO这个对象是null
      

  3.   

    在出错语句的前面把carDAO给输出来看看,这种空指针错误是最好找的了,就按照他的运行顺序在各个地方都把对应的值给输出,如果出现null就证明找到了。
      

  4.   

    确实是carDAO未能成功被注入造成的。
    也许楼主需要考虑一下调整Struts/Spring集成方式。参照
    http://zhidao.baidu.com/question/75224316
      

  5.   

    既然所有方法都报错,就说明是DAO的问题。检查下配置文件。
      

  6.   

    carDAO这个里面的findAll()方法没有实现好,楼主可以发源码我们帮您看看