我的java代码如下:public class CertAction extends UniformAction {

private CertService certService; public void setCertService(CertService certService) {
this.certService = certService;
                System.out.println("certService = " + certService);
}
 ....这个UniformAction是我们公司自己的,类似于struts可以在action-config.xml中配置请求转发。
然后我想注入CertService,程序启动时在setCertService方法中打印出了:certService = com.essp.uas.impl.CertServiceImpl@1b0d2d0,我认为已经注入了。
但在通过页面访问CertAction时,却抛java.lang.NullPointerException,断点certService为null。
请问这种情况一般是什么原因,我猜想会不会于CertAction 的实现机制有关~
以下还有spring配置文件:  <bean id="certService" class="com.essp.uas.impl.CertServiceImpl">
    <property name="ldapTemplate"><ref bean="ldapTemplate"/></property>
  </bean>
  
  <bean id="certAction" class="com.essp.uas.action.CertAction">
    <property name="certService" ref="certService"/>
  </bean>
springSpring

解决方案 »

  1.   

    顺便补充以下,action的配置文件:<actions context="/certUnBind">
    <action path="/search" class="com.essp.uas.action.CertAction"
    method="searchUnBind">
    <!-- <result name="list">/cert/cert_unbind_list.jsp</result> -->
    <result name="list">/cert/cert_unbind_list.jsp</result>
    </action>
      

  2.   

    属性certServce和id=“cerService”相同 建议LZ把id换个名字吧  在<property name="certService" ref="certService"/>这里都相同  区分开最好
      

  3.   

    通过search.action会执行com.essp.uas.action.CertAction中的searchUnBind方法,
    searchUnBind方法中用到了我注入的certService,但为空~
    我用main方法测试certService中的方法是可以使用的。但通过action调用就是注入不了
      

  4.   

    好吧,我试试
    spring应该只用申明setXXX就可以注入了
      

  5.   

    spring应该只用申明setXXX就可以注入了
      

  6.   

    能用spring加载struts托管bean?
    你用倒了吧,struts加载spring bean吧
    应该是bean通过spring加载,然后struts来调用spring的bean
      

  7.   

    spring应该只用申明setXXX就可以注入了
    我用的不是struts,而是公司自己写的框架,这才是最郁闷的。
      

  8.   

    能用spring加载struts托管bean?
    你用倒了吧,struts加载spring bean吧
    应该是bean通过spring加载,然后struts来调用spring的bean
    应该是这样,可能你页面访问的action实例是由struts本身创建的而不是通过spring获取的;spring的注入只在他自己的bean之间有效,不然你就通过spring上下文去获取service吧
      

  9.   

    spring应该只用申明setXXX就可以注入了
    我用的不是struts,而是公司自己写的框架,这才是最郁闷的。
    我觉得你说的有道理,支出了问题所在。但如果是struts到好解决,网上资料大把的,现在用的公司自己的产品。。哎,看来只能用ApplicationContext了
      

  10.   

    谢谢大家的回答,我最终采用的方式是在action中加入static静态通过ApplicationContext来获得spring bean的。实在是不知道怎么注入了