我的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
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
<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>
searchUnBind方法中用到了我注入的certService,但为空~
我用main方法测试certService中的方法是可以使用的。但通过action调用就是注入不了
spring应该只用申明setXXX就可以注入了
你用倒了吧,struts加载spring bean吧
应该是bean通过spring加载,然后struts来调用spring的bean
我用的不是struts,而是公司自己写的框架,这才是最郁闷的。
你用倒了吧,struts加载spring bean吧
应该是bean通过spring加载,然后struts来调用spring的bean
应该是这样,可能你页面访问的action实例是由struts本身创建的而不是通过spring获取的;spring的注入只在他自己的bean之间有效,不然你就通过spring上下文去获取service吧
我用的不是struts,而是公司自己写的框架,这才是最郁闷的。
我觉得你说的有道理,支出了问题所在。但如果是struts到好解决,网上资料大把的,现在用的公司自己的产品。。哎,看来只能用ApplicationContext了