Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 春天的石英工作不是';t开始_Java_Spring_Jakarta Ee_Quartz Scheduler - Fatal编程技术网

Java 春天的石英工作不是';t开始

Java 春天的石英工作不是';t开始,java,spring,jakarta-ee,quartz-scheduler,Java,Spring,Jakarta Ee,Quartz Scheduler,我正在使用Spring的SchedulerFactoryBean动态地调度作业。 以下是我的Spring配置: @Configuration public class SpringConfigBean { @Bean public DataSource dataSource() throws NamingException{ InitialContext ctx = new InitialContext(); DataSource source =

我正在使用Spring的SchedulerFactoryBean动态地调度作业。 以下是我的Spring配置:

@Configuration
public class SpringConfigBean {
    @Bean
    public DataSource dataSource() throws NamingException{
        InitialContext ctx = new InitialContext();
        DataSource source = (DataSource) ctx.lookup(dataSourceName);
        return source;
    }

    @Bean
    public SchedulerFactoryBean schedulerFactoryBean() throws NamingException {
        SchedulerFactoryBean schedulerFactoryBean = null;
        try {
            schedulerFactoryBean = new SchedulerFactoryBean();
            schedulerFactoryBean.setDataSource(dataSource());
            schedulerFactoryBean.setQuartzProperties(com.orca.integration.plugins.vs.broadpeak.admin.utils.Configuration.getQuartzProperties());
            schedulerFactoryBean.setAutoStartup(false);
        } catch (SchedulingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return schedulerFactoryBean;
    }
}

这是我的工作:

@Component
public class MyJob extends QuartzJobBean {

    @Override
    public void executeInternal(JobExecutionContext context) throws JobExecutionException {
        System.out.println("Start job...");
}
}
这是我动态安排任务的地方:

@Component
public class MyManager {
    @Autowired
    private SchedulerFactoryBean schedulerFactoryBean;

    public void myMethod(String text, Calendar startDate) {
        logger.debug("BroadpeakDistributionManager.startRecordingChannel(); Parameters: recording channel ID=" + recordingChannel.getExternalId());

//      StartRecordJob.scheduleMe(text, startDate, "Start");

        JobDetailBean jobDetailBean = new JobDetailBean();
        jobDetailBean.setJobClass(MyJob.class);
        jobDetailBean.setName("name");
        jobDetailBean.afterPropertiesSet();

        SimpleTriggerBean simpleTriggerBean = new SimpleTriggerBean();
        simpleTriggerBean.setJobDetail(jobDetailBean);
        simpleTriggerBean.setName("Name");
        simpleTriggerBean.setStartTime(startDate.getTime());
        try {
            simpleTriggerBean.afterPropertiesSet();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        schedulerFactoryBean.setTriggers(new Trigger[] {simpleTriggerBean});
        schedulerFactoryBean.start();
    }
}
工作还没有开始。
我做错了什么?

我对Spring的编程配置没有任何经验。因此,我编写了这个XMLSpring应用程序上下文配置,将其与Quartz集成在一起

看一看:

<!-- You can inject other sping beans here -->
<bean id="myJob" class="your.package.here.MyJob "/>

<!-- Define your target method -->
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="myJob" />
  <property name="targetMethod" value="executeInternal" />
</bean>

<!-- trigger using unix expression -->
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    <property name="jobDetail" ref="jobDetail" />
    <!-- run every morning at 6 AM -->
    <property name="cronExpression" value="0 0 6 * * ?" />
</bean>

您是否缺少@EnableScheduling注释

大概是这样的:

@Configuration
@EnableScheduling
public class SpringConfigBean {
...
}

直接使用SchedulerFactoryBean时,不需要@EnableScheduling注释。