异常-----spring明明注入了Service到Action中,为什么运行的时候Service为空,在抽象类中,有子类来继承的
xml的配置文件
<bean id="fftController" class="com.bill99.query.controller.FftController" abstract="true">
<property name="wxOrderService" ref="wxOrderService" />
</bean>
<bean id="wxFFanController1" class="com.bill99.query.controller.WXFFanController1" parent="fftController">
<property name="methodNameResolver">
<ref bean="paramResolver" />
</property>
<property name="wxOrderService"
ref="wxOrderService" >
</property> /就是他们引起了。
<property name="fileProcessManage">
<ref bean="fileProcessManage" />
</property>
</bean>
2,
public abstract class FftController extends BaseController {
protected WxOrderService wxOrderService;
public void save(HttpServletRequest request, HttpServletResponse response) {
logger.info("save info begin...");
Map<String, Object> result = new HashMap<String, Object>();
try {
String wxOpenId = request.getParameter("wxOpenId");
String applyId = request.getParameter("applyId");
String wxModuleType = request.getParameter("wxModuleType");
//UploadFile1(request,response,applyId);
if (StringUtil.isEmpty(wxOpenId) || StringUtil.isEmpty(applyId)
|| StringUtil.isEmpty(wxModuleType)) {
result.put("code", "001");
result.put("desc", "必填参数为空");
super.toJson(result, response);
return;
}
// 获取request里的所有参数,作为orderParam
String paramJson = packageOrderParam(request);
// 查询对象
WxOrder wxOrder = new WxOrder();
wxOrder.setWxOpenId("666");
wxOrder.setApplyId(applyId);
wxOrder.setWxModuleType("777");
// 查询是否已经存在 wxOrderService就是在这空了的
WxOrder query = wxOrderService.findWxOrderByModel(wxOrder);
if (null != query) {
wxOrder = query;
wxOrder.setOrderParam(paramJson);
wxOrder.setLastupDate(new Date());
wxOrderService.updateWxOrder(wxOrder);
} else {
wxOrder.setOrderParam(paramJson);
wxOrder.setCreateDate(new Date());
wxOrder.setLastupDate(new Date());
wxOrderService.createWxOrder(wxOrder);
}
result.put("code", "000");
result.put("desc", "success");
super.toJson(result, response);
return;
} catch (Exception e) {
logger.error("", e);
result.put("code", "099");
result.put("desc", "系统异常");
super.toJson(result, response);
return;
}
}
3.
public class WXFFanController1 extends FftController {
protected WxOrderService wxOrderService;/就是他们引起的。
public void setWxOrderService(WxOrderService wxOrderService) {
this.wxOrderService = wxOrderService;
}
产生,为空的原因主要是因为父类中已经注入了,而在子类中又注入了一遍,产生空了。解决方案就是把子类的删除掉,子类可以直接用wxOrderService。不需要重新注入的。
<bean id="wxFFanController1" class="com.bill99.query.controller.WXFFanController1" parent="fftController">
<property name="methodNameResolver">
<ref bean="paramResolver" />
</property>
<property name="fileProcessManage">
<ref bean="fileProcessManage" />
</property>
</bean>
public class WXFFanController1 extends FftController {
}
- spring in action小结3 运行时值注入
- 继承抽象类运行其方法出现null的异常
- spring整合struts2时action里的service注入不进来,
- JAVA为什么子类继承父类方法之后,不能抛出比父类更多的异常?
- spring struts2 整合 action 注入service 报错NullPointerException
- quartz整合Spring注入Service时空指针异常问题解决
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-007-给BEAN运行时注入值placeholder、@Value
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-009-用SPEL给bean运行时注入依赖值
- spring管理实务回滚条件:抛出运行时异常的时候
- spring 继承的baseDao无法注入导致异常的问题
- JAVA为什么子类继承父类方法之后,不能抛出比父类更多的异常?
- Spring AOP操作action时无法注入,报NullPointer异常
- 整合strust2和spring的关键点(为action注入service)
- 在ssh项目中spring在action注入service为null
- struts2整合spring后常会忽略的一些细节导致注入service时失败,程序运行报空指针。
- spring中类继承TimerTask后 service 和dao 无法注入 以及参数无法传递
- springboot 注入的@service为空,运行时报空指针
- quartz整合Spring注入Service时空指针异常问题解决
- SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-006-给bean运行时注入值(Environment,Property文件)
- spring整合struts2,action里的service注入,空指针异常