当前位置: 代码迷 >> Java Web开发 >> servlet监听器有关问题 求帮助
  详细解决方案

servlet监听器有关问题 求帮助

热度:6600   发布时间:2013-02-25 21:21:07.0
servlet监听器问题 求帮助
代码:
这是 执行类代码 配置都正常 
Java code
package cn.ait.cms.action;import java.util.Date;import java.util.List;import java.util.TimerTask;import org.springframework.beans.factory.annotation.Autowired;import cn.ait.cms.model.TbArticle;import cn.ait.cms.service.ArticleService;import cn.ait.common.util.Util;public class IndexNewsStatusExcuter extends TimerTask{    @Autowired    ArticleService articleService;        @Override    public void run() {        System.out.println("############# 执行" + Util.date2str(new Date(), "yyyy-MM-dd hh:mm:ss") );         //这里异常        List<TbArticle> list =findAllData();        for (TbArticle tbArticle : list) {            System.out.println("内容:"+ tbArticle.getMainTitle());        }            }          /** 获取最新数据库信息[ 置顶,推荐,new 信息  ]*/    public List<TbArticle> findAllData(){                List<TbArticle> list = null ;        /* 设置查询条件 */        int isRecommend = 1;        try{            //这里异常22222222222            list = articleService.findByIsRecommend(isRecommend);                    }catch (Exception e) {                        System.out.println("监听器查询数据异常...");                        e.printStackTrace();        }                return list ;    }}


SSH框架 报告的错误信息是
Java code
java.lang.NullPointerException    at cn.ait.cms.action.IndexNewsStatusExcuter.findAllData(IndexNewsStatusExcuter.java:38)    at cn.ait.cms.action.IndexNewsStatusExcuter.run(IndexNewsStatusExcuter.java:23)    at java.util.TimerThread.mainLoop(Timer.java:512)    at java.util.TimerThread.run(Timer.java:462)Exception in thread "Timer-2" java.lang.NullPointerException    at cn.ait.cms.action.IndexNewsStatusExcuter.run(IndexNewsStatusExcuter.java:24)    at java.util.TimerThread.mainLoop(Timer.java:512)    at java.util.TimerThread.run(Timer.java:462)2012-4-19 14:10:25 org.apache.cxf.transport.servlet.CXFServlet updateContext



求帮助 是数据库链接的问题吗? 


------解决方案--------------------------------------------------------
ArticleService articleService;

list = articleService.findByIsRecommend(isRecommend);

articleService对象没有实例化,new
------解决方案--------------------------------------------------------
应该是articleService.findByIsRecommend(isRecommend)有问题,你要看下findByIsRecommend方法,或者DEBUG跟踪下哪里报NullPointerException

------解决方案--------------------------------------------------------
articleService,这个对象注入进来了吗,
应该是没注入进来
------解决方案--------------------------------------------------------
@Autowired
ArticleService articleService;
没有注入成功,你看下你的这个ArticleService接口 的实现是不是没加@service.
Java code
     try{            if(null=articleService) System.out.println("error...");            list = articleService.findByIsRecommend(isRecommend);                    }catch (Exception e) {                        System.out.println("监听器查询数据异常...");                        e.printStackTrace();        }
------解决方案--------------------------------------------------------
你调用 IndexNewsStatusExcuter 的时候,是不是new 出来的?

Task task = new IndexNewsStatusExcuter();

如果是,这个task是不被spring容器管理的,所以你里面的articleService必然是NULL,你可以试试从context中取出articleService
------解决方案--------------------------------------------------------
探讨

引用:

報錯是在findAllData方法中,應該是articleService注入失敗。
首先,你用的是注解注入,那麽你要確定,在xml配置文件中,是否有設置相關包掃描機制,目的是使spring的注解可以被spring容器識別。
  相关解决方案