ssh

java.lang.NullPointerException
com.liushiqing.struts.action.ProductAction.save(ProductAction.java:90)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

解决方案 »

  1.   

    在action中执行到save()方法时报错NullPointerException,我已经用spring把对象注入到里面去了,怎么还报这样的错,以前我也是这样做的但是没报错,希望高手指教.
      

  2.   

    调试程序,看下 com.liushiqing.struts.action.ProductAction.save(ProductAction.java:90)  这里是不是有null的变量。 
      

  3.   

    save里面仔细看看,把看着有嫌疑的打印下
      

  4.   

    我 像把save里的pro.setCprice(Double.valueOf(productForm.getCprice()));
                  System.out.println(Double.valueOf(productForm.getCprice()));
    都像这样打印出来看了,没有空值
    真的觉的很奇怪
      

  5.   

    同意楼上的,在程序save方法开始执行的地方设个断点。虽然楼主说已经把对象通过spring注入进入了,但还是要排查一下是否已经获得了当前你操作的对象。如果要操作的对象已经存在的话,那说明注入没有问题,再单步执行看看,有没有不当的操作导致了空指针异常。
    做程序的话,还是要多实际操作哦,想当然是不好滴习惯呢,虽然上次可以,但是每个项目,每个模块都不能一概而论的,毕竟数据流、业务流都不一样,所以设个断点跑看看吧。希望你可以早点解决问题。
      

  6.   

    我明明通过这样的方式
    <bean name="/product" class="com.liushiqing.struts.action.ProductAction">
        <property name="proManager">
           <ref bean="proManager"/>
        </property> 
    </bean>
    把proManager对象注入到了ProductAction里了,但在ProductAction里对象proManager为空值,什么原因?如何解决?
      

  7.   

    这个和你的set是一样的吗?一样的话就不是这个原因了
      

  8.   

    Action 里是private IProduct proManager;
              public IProduct getProManager() {
    return proManager;
    } public void setProManager(IProduct proManager) {
    this.proManager = proManager;
    }
    什么和set是一样的?楼上能具体说下吗
      

  9.   

    <bean name="/category" class="com.liushiqing.struts.action.CategoryAction">
       <property name="cateManager">
          <ref bean="cateManager"/>
       </property>
    </bean>
    在同一个项目里的这个类对象的注入,跟刚才那个没区别,但CategoryAction里的cateManager对象不为空,真是太奇怪了。
      

  10.   

    一步一步调试下,看哪里的对象为null
      

  11.   

    搞定了,我把product这个模块的所有代码放到另一个新建的工程里就好了,不知道什么原因,这年头怪事还真多。谢谢大家。