日期:2014-05-17  浏览次数:20813 次

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
------解决方案--------------------
探讨<