spring 定时任务中调用context 报错误NullPointer
阅读
我在项目中用到了quartz定时任务
然后在启动的方法中使用:
ServletContext context = ServletActionContext.getServletContext();
List list=(List) context.getAttribute("dictionaryInfo");
这个dictionaryInfo是我在listener中set进去的。
启动项目,报
- Java code
Caused by: java.lang.NullPointerException at org.apache.struts2.ServletActionContext.getServletContext(ServletActionContext.java:139)
请问这是什么原因造成的,如何解决呢?
------解决方案--------------------
ServletContext context = ServletActionContext.getServletContext();找不到啊
------解决方案--------------------
quartz在listener set前启动了吧
------解决方案--------------------
确定属于一个上下文中吗?
------解决方案--------------------
很有可能的一种原因是框架没有调用setServletContext(ServletContext context)方法,
而这个的原因是Action Class没有实现ServletContextAware接口。而这个注入是由spring拦截器完成的。
- Java code
import javax.servlet.ServletContext; import org.apache.struts2.util.ServletContextAware; import com.opensymphony.xwork2.ActionSupport; public class CustomerAction extends ActionSupport implements ServletContextAware{ ServletContext context; public String execute() throws Exception { return SUCCESS; } public void setServletContext(ServletContext context) { this.context = context; } }阅读上一篇:关于java的一个语法有关问题 下一篇:返回列表