spring定时任务-Spring 定时任务 在执行方法时报空指针

问题描述

Spring 定时任务 在执行方法时报空指针

定时任务的xml:

com.boco.auto.AutoIPV6BusinessAlarmStatisticsReport

0 30 3 * * ?

Spring注入:
class="com.boco.web.struts.action.report.ReportCommonActionPipeRes"
parent="baseAction">

<!-- add liuhuipeng -->

class="com.boco.alarm.service.impl.VendorFaultReportServiceImpl">

定时任务:
public class AutoAlarmStatisticsReport implements Job{
static Logger logger = Logger.getLogger(AutoAlarmStatisticsReport.class) ;
private ReportCommonActionPipeRes pipeResAction;

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
    logger.info("+++进入定时任务。+++");
    generateReport();
}
public void generateReport(){
    logger.info("modelName=AlarmStatistics");
    pipeResAction = (ReportCommonActionPipeRes)StartupApp.getInstance().
    getAppContext().getBean("reportpiperesource");
    String modelName = "IPV6BusinessAlarmStatistics";
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String today = sdf.format(date);
    this.pipeResAction.insertBusinessNEStatistics(modelName);
    //insertBusinessNEStatistics(modelName);
}

}
调用此方法:
public boolean insertBusinessNEStatistics(String modelName){
boolean isOk = false;
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String createDate = sdf.format(date);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date datestart = new Date();

String startDateString="";
startDateString= sdf1.format(datestart);
List Allist = new ArrayList();
String informixSql = statementManagementBean.getStatementByName(modelName.trim());
Map parameterMap = new HashMap();

    if((null == informixSql)||informixSql.equalsIgnoreCase("no such table")){
        return isOk;
    }else{
        String[] sql_Array = informixSql.split(";");
        List<Map> dataList = new ArrayList<Map>();
        for(String sql : sql_Array){
            if(sql != null && sql.trim().length() > 0){
                if(modelName.equalsIgnoreCase("AlarmStatistics")){
                    String procName = "{call pro_alarm_trans_counteveryday()}";
                    boolean isInsertflag= false;
                    //测试:
                    isInsertflag = true;
                //  try {
                //      isInsertflag = vendorfaultService.insertIPV6AlarmCount(procName);
                //      logger.info("++获得告警标识:++"+isInsertflag);
                //  } catch (Exception e) {
                        // TODO: handle exception
                //      logger.error("error 错误的信息", e);
                //  }
                    if(isInsertflag == true){
                        try{
                            dataList = vendorfaultService.queyAlarm(parameterMap, sql.trim(), false);
                        }catch(Throwable t){
                            logger.error("error 错误的信息", t);
                        }
                    }else{
                        return isInsertflag;
                    }
                }else{
                    //dataList = reportCommonDao.commonQuery(sql.trim(), parameterMap);
                    dataList = reportCommonDao.commonQuery(sql.trim(), parameterMap);
                }

            }
        }

        isOk = true;
    }
    return isOk;
}

解决方案

自己找到了,原来这里面是双配置。自己就注入了一个。

解决方案二:

Spring定时任务执行的2中方法

解决方案三:

请把异常全部粘贴出来,这样别人才更容易帮到你!

解决方案四:

自己找到了,原来这里面是双配置。自己就注入了一个。

解决方案五:

自己找到了,原来这里面是双配置。自己就注入了一个。

解决方案六:

自己找到了,原来这里面是双配置。自己就注入了一个。

时间: 2024-06-11 19:23:14

spring定时任务-Spring 定时任务 在执行方法时报空指针的相关文章

java-hibernate框架,测试update方法时报空指针

问题描述 hibernate框架,测试update方法时报空指针 上面提示33行,33行也就一个字段一个方法,两个都找得到的 解决方案 可能是传进去的参数 或是执行的HQL语句问题,没有把数据插入. 空指针的情况很多哦! 解决方案二: user可能是空,,查一下数据库,是不是id为1的那个被删除了

当spring 容器初始化完成后执行某个方法

在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数. 而在Spring的web项目中,我们可以介入Spring的启动过程.我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现一个接口: 1 2 3 4 5 6 7 package com.yk.test.executor.p

spring task 修改系统时间 执行问题

问题描述 spring task 修改系统时间 执行问题 场景是这样的: 写了个定时任务每天凌晨一点执行. 一种情况是修改系统时间距离到凌晨一点差几分钟,跑项目.到点了定时任务执行. 第二种情况是先跑项目在改系统时间,这种情况定时任务不执行. 简单的了解下加个人的理解是:在项目跑起来的时候spring去记录当前系统的时间, 起一个线程,计算当前时间到下一次执行的时间,现在这这段时间处于等待.到了时间 唤醒线程执行job. 请教大神们,个人理解是否有误? 解决方案 android修改系统时间问题W

PHP定时任务获取微信access_token的方法_php技巧

本文实例讲述了PHP定时任务获取微信access_token的方法.分享给大家供大家参考,具体如下: 微信access_token在开发时会变的好像是几分种不一样了,这里我们来介绍关于PHP定时任务获取微信access_token的方法. 最近开发微信公众平台,公众号调用各接口时都需使用access_token,access_token是公众号的全局唯一接口调用凭据,开发时需要进行妥善保存. access_token有效期为7200秒 ,重复获取将导致上次获取的access_token失效. 由

Spring AOP基于配置文件的面向方法的切面

Spring AOP基于配置文件的面向方法的切面 Spring AOP根据执行的时间点可以分为around.before和after几种方式. around为方法前后均执行 before为方法前执行 after为方法后执行 这里只对around的方式进行介绍.本文只是摘录相应的思路,许多辅助类和方法不一一给出.因此下述方法并不能正常运行. 定义忽略权限检查注解类 @Documented @Target(ElementType.METHOD) @Retention(RetentionPolicy.

在SPRING中实现事务暂停的方法

摘要 Spring框架是一个流行的基于轻量级控制反转容器的Java/J2EE应用框架,尤其在数据访问和事务管理方面的能力是众所周知的.Spring的声明性事务分离可以应用到任何POJO目标对象,并且包含所有EJB基于容器管理事务中的已声明事务.后台的事务管理器支持简单的基于JDBC的事务和全功能的基于JTA的J2EE事务. 这篇文章详细的讨论了Spring的事务管理特性.重点是如何在使用JTA作为后台事务策略的基础上让POJO利用Spring的声明性事务,这也显示了Spring的事务服务可以无缝

抢答急急急-spring如何配置让action的方法一启动就调用?

问题描述 spring如何配置让action的方法一启动就调用? spring如何配置让action的方法一启动就调用?spring如何配置让action的方法一启动就调用?spring如何配置让action的方法一启动就调用?

spring contorller 中状态的开关方法如何实现

问题描述 spring contorller 中状态的开关方法如何实现 在contorller如何实现方法? 解决方案 看看Spring源码吧,我也在学习中////

spring cxf 创建webservice 报无方法

问题描述 spring cxf 创建webservice 报无方法 spring cxf 创建webservice 报无方法,但是在测试工具下没有问题,求解