配置文件:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<!-- 本地应用 -->
<bean id="JobInfo" class="com.spnc.agri.web.webwork.action.JobInfoAction">
</bean>
<!-- 定时器 -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="JobInfo" />
<property name="targetMethod" value="senddoublelist"/>
<property name="concurrent" value="false" />
</bean>
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="0 15 16 * * ?" />
</bean>
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
</beans>
要执行的方法
public String senddoublelist() {
System.out.println("开始执行!!!");
Map filterMap0 = new HashMap();
filterMap0.put("status", "0");
joblist = jobInfoManager.findAllBy(filterMap0);}
在执行到joblist=joblist = jobInfoManager.findAllBy(filterMap0);}
时报错
错误如下:
[org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob] [WARN] Could not invoke method 'senddoublelist' on target object [com.spnc.agri.web.webwork.action.JobInfoAction@bb1ee]
java.lang.NullPointerException
at com.spnc.agri.web.webwork.action.JobInfoAction.senddoublelist(JobInfoAction.java:925)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:270)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:199)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>
<!-- 本地应用 -->
<bean id="JobInfo" class="com.spnc.agri.web.webwork.action.JobInfoAction">
</bean>
<!-- 定时器 -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="JobInfo" />
<property name="targetMethod" value="senddoublelist"/>
<property name="concurrent" value="false" />
</bean>
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetail" />
<property name="cronExpression" value="0 15 16 * * ?" />
</bean>
<bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
</beans>
要执行的方法
public String senddoublelist() {
System.out.println("开始执行!!!");
Map filterMap0 = new HashMap();
filterMap0.put("status", "0");
joblist = jobInfoManager.findAllBy(filterMap0);}
在执行到joblist=joblist = jobInfoManager.findAllBy(filterMap0);}
时报错
错误如下:
[org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob] [WARN] Could not invoke method 'senddoublelist' on target object [com.spnc.agri.web.webwork.action.JobInfoAction@bb1ee]
java.lang.NullPointerException
at com.spnc.agri.web.webwork.action.JobInfoAction.senddoublelist(JobInfoAction.java:925)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:270)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:199)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:90)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
你的问题在这里,我觉得正确的写法应该是<property>
<value>0 15 16 * * ?</value></property>别的地方也没问题,今天才看见,不知道对你还有没有帮助
好好查下哪里会出现空值,而不处理就调用了啊,如 joblist = jobInfoManager.findAllBy(filterMap0);
若jobInfoManager为空时,调用jobInfoManager.findAllBy()方法就肯定抛NullPointerException