Spring MVC quartz定时执行问题
2014-09-28 10:50
183 查看
第一次使用Spring Mvc框架做项目,由于数据量较大,需要设置每天半夜固定的时间点执行数据转存,但是由于Controller里定时执行的方法中采用的@Service注入,一直报Service空指针异常,问题在半个月前我发的一篇求助帖中有详细说明。 http://ask.csdn.net/questions/151948
帖子放了半个多月没人解答,经过长时间查找资料,终于能够实现了,亲测可用,暂时不知道之前的空指针异常问题出在哪里,先奉上解决方案。
<!-- 要调用的工作类 -->
<bean id="glybController" class="org.mnis.web.GlybController"></bean>
<!-- 定义调用对象和调用对象的方法,以上为管理员表Controller -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="glybController" /> <!-- 对应调用工作类的bean id-->
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>initSys</value> <!-- 对应调用工作类的 GlybController里要实现定时执行的方法initSys实现系统初始化,本方法为定时执行的方法-->
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每各执行一次-->
<!-- <value>0 */1 * * * ?</value> -->
<value>0 0 10 * * ?</value> <!-- 定义在每天早上10点自动执行 -->
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuartz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
至于controller里面的方法如何写还有web.xml里对于spring的配置,我就不给大家贴出来了。
controller里面是采取的Service注入的方法
@Resource
private BrbService brbService;
@RequestMapping("/initSys.do")
public ModelAndView initSys() throws Exception{
this.brbService.saveOrUpdateBrb(brb);
}
以前的方法一直都是可以实现定时执行,但是在 this.brbService.saveOrUpdateBrb(brb);就会报空指针异常,显示brbService为空。现在终于解决了!!!
帖子放了半个多月没人解答,经过长时间查找资料,终于能够实现了,亲测可用,暂时不知道之前的空指针异常问题出在哪里,先奉上解决方案。
<!-- 要调用的工作类 -->
<bean id="glybController" class="org.mnis.web.GlybController"></bean>
<!-- 定义调用对象和调用对象的方法,以上为管理员表Controller -->
<bean id="jobtask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="glybController" /> <!-- 对应调用工作类的bean id-->
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>initSys</value> <!-- 对应调用工作类的 GlybController里要实现定时执行的方法initSys实现系统初始化,本方法为定时执行的方法-->
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每各执行一次-->
<!-- <value>0 */1 * * * ?</value> -->
<value>0 0 10 * * ?</value> <!-- 定义在每天早上10点自动执行 -->
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuartz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime" />
</list>
</property>
</bean>
至于controller里面的方法如何写还有web.xml里对于spring的配置,我就不给大家贴出来了。
controller里面是采取的Service注入的方法
@Resource
private BrbService brbService;
@RequestMapping("/initSys.do")
public ModelAndView initSys() throws Exception{
this.brbService.saveOrUpdateBrb(brb);
}
以前的方法一直都是可以实现定时执行,但是在 this.brbService.saveOrUpdateBrb(brb);就会报空指针异常,显示brbService为空。现在终于解决了!!!
相关文章推荐
- spring quartz 定时任务执行两次的问题
- 关于spring的quartz(定时任务执行)问题,
- Spring MVC使用Quartz定时执行
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- SSM集成Quartz定时任务 重复执行问题
- 解决spring quartz定时任务执行2次的问题
- 关于Spring中用quartz定时器在定时到达时同时执行两次的问题
- SSH:解决Spring整合quartz定时任务执行两次问题
- crontab定时执行bash脚本出现错误 手动没有问题
- asp.net定时执行任务-解决应用池回收问题----转载
- 解决定时执行代码可能跳过的问题
- 定时执行程序-Quartz简单实例
- .NET 定时执行写日志任务解决方案(Timer & Quartz.Net)
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- 定时执行程序-Quartz简单实例
- 在Java中怎么使用定时服务计时器Timer 处理隔断执行问题
- 定时执行任务之quartz
- .NET 定时执行任务解决方案(Timer & Quartz.Net) .
- spring quartz定时执行任务
- 关于 quartz 1.6.1 的一个死等问题,导致任务不执行