首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

spring 定时任务中调用context 报错误NullPointer

2012-06-07 
spring定时任务中调用context 报异常NullPointer我在项目中用到了quartz定时任务然后在启动的方法中使用:S

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;    }} 

热点排行