title: spring-quartz doesn't start with error message when try to start application?
body: <p>There is spring application deployed on websphere8.5.5.13</p>
  
  <p>I try to use spring-quartz to schedule my jobs by cron, but they are start with error
  My quartz configuration class</p>
  
  <pre><code>  @Configuration
      @Import(PersistenceConfig.class)
      @PropertySource(value = {"classpath:application.properties"})
      @EnableScheduling
      public class ExportConfig {
          private Logger logger = Logger.getLogger(getClass());
          @Autowired
          private DataSource dataSource;
          @Autowired
          private EntityManagerFactory entityManagerFactory;
          @Getter
          @Autowired
          private MyService service;
  
          private final String QRTZ_TRIGGER = "My_TRIGGER";
          private final String QRTZ_GROUP = "My_GROUP";
          private final String QRTZ_JOB = "MyJOB";
          private final String TIME = "0 0-59 0-23 * * ?"; /* каждый час, каждые 0,15,30,45 минут */
  
          @Bean
          @DependsOn(value = {"entityManagerFactory", "dataSource"})
          public JobDetail cronJobMy() {
              JobKey jobKey = new JobKey(QRTZ_JOB, QRTZ_GROUP);
              return JobBuilder
                      .newJob(MyJob.class)
                      .storeDurably(true)
                      .requestRecovery(true)
                      .withIdentity(jobKey).build();
          }
  
          @Bean
          @DependsOn(value = {"entityManagerFactory", "dataSource"})
          public Trigger cronTriggerMy() {
              TriggerKey triggerKey = new TriggerKey(QRTZ_TRIGGER, QRTZ_GROUP);
              return TriggerBuilder
                      .newTrigger()
                      .withIdentity(triggerKey)
                      .withSchedule(createSchedule(TIME)).build();
          }
  
          @Bean
          @DependsOn(value = {"entityManagerFactory", "dataSource"})
          public Scheduler cronSchedulerMy(JobDetail cronJobMy, Trigger cronTriggerMy) throws SchedulerException {
              StdSchedulerFactory factory = new StdSchedulerFactory("quartzStandalone.properties");
              Scheduler scheduler = factory.getScheduler();
              boolean triggerExist = scheduler.checkExists(cronTriggerMy.getKey());
              boolean jobExist = scheduler.checkExists(cronJobMy.getKey());
  
              if (triggerExist || jobExist) {
                  scheduler.deleteJob(new JobKey(QRTZ_JOB, QRTZ_GROUP));
              }
  
              scheduler.start();
              scheduler.getContext().put("SERVICE", service);
              scheduler.scheduleJob(cronJobMy, cronTriggerMy);
              return scheduler;
          }
  
          private static ScheduleBuilder createSchedule(String cronExpression) {
              CronScheduleBuilder builder = CronScheduleBuilder.cronSchedule(cronExpression);
              return builder;
          }
      }
  </code></pre>
  
  <p>Job looks like this:</p>
  
  <pre><code>@DisallowConcurrentExecution
  @PersistJobDataAfterExecution
  public class ExportJob implements Job {
      private static final String MESSAGE = "===================================EXPORT QUARTZ TACT===================================";
      private Logger logger = Logger.getLogger(getClass());
  
      @Override
      public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
          logger.log(Level.INFO, MESSAGE);
          try {
              ApplicationContext springContext =
                      WebApplicationContextUtils.getWebApplicationContext(ContextLoaderListener.getCurrentWebApplicationContext().getServletContext());
              Object bean = springContext.getBean("exportService");
              if (bean != null) {
                  ExportService exportService = (ExportService) bean;
                  exportService.export();
              }
          } catch (Exception e) {
              e.printStackTrace();
              logger.log(Level.ERROR, "EXPORT_SERVICE_BY_QUARTZ Failed..");
              logger.log(Level.ERROR, Arrays.toString(e.getStackTrace()));
          }
      }
  }
  </code></pre>
  
  <p>property-file</p>
  
  <pre><code>#============================================================================
  # Configure Main Scheduler Properties  
  # Configure Main Scheduler Properties  
  #============================================================================
  
  org.quartz.scheduler.instanceName = MYAPPStandaloneScheduler
  org.quartz.scheduler.instanceId = AUTO
  #============================================================================
  # Configure ThreadPool  
  #============================================================================
  
  org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  org.quartz.threadPool.threadCount = 1
  org.quartz.threadPool.makeThreadsDaemons = true
  #============================================================================
  # Configure JobStore  
  #============================================================================
  
  org.quartz.jobStore.misfireThreshold = 60000
  
  org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
  org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
  org.quartz.jobStore.useProperties = false
  org.quartz.jobStore.dataSource = MYAPP
  org.quartz.jobStore.tablePrefix = QRTZ_
  org.quartz.jobStore.isClustered = false
  org.quartz.jobStore.clusterCheckinInterval = 20000
  org.quartz.dataSource.MYAPP.jndiURL = java:comp/env/jdbc/MYAPP
  </code></pre>
  
  <p>my pom.xml</p>
  
  <pre><code> &lt;!-- Quartz for schedule --&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.quartz-scheduler&lt;/groupId&gt;
              &lt;artifactId&gt;quartz&lt;/artifactId&gt;
              &lt;version&gt;2.3.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.quartz-scheduler&lt;/groupId&gt;
              &lt;artifactId&gt;quartz-oracle&lt;/artifactId&gt;
              &lt;version&gt;1.8.5&lt;/version&gt;
          &lt;/dependency&gt;
  </code></pre>
  
  <p>But, when try to start my application, there is error message</p>
  
  <blockquote>
    <p>'MYAPPStandaloneScheduler' with instanceId 'NON_CLUSTERED'   Scheduler
    class: 'org.quartz.core.QuartzScheduler' - running locally.   NOT
    STARTED.   Currently in standby mode.   Number of jobs executed: 0<br>
    Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 1
    threads.   Using job-store 'org.quartz.impl.jdbcjobstore.JobStoreTX' -
    which supports persistence. and is not clustered.</p>
    
    <p>[11/29/19 9:05:21:513 MSK] 00000109 SystemOut     O [2019-11-29
    09:05:21.513] INFO  org.quartz.impl.StdSchedulerFactory      Quartz
    scheduler 'MYAPPStandaloneScheduler' initialized from the specified
    file : 'quartzStandalone.properties' from the class resource path.
    [11/29/19 9:05:21:521 MSK] 00000109 SystemOut     O [2019-11-29
    09:05:21.521] WARN  rt.AnnotationConfigWebApplicationContext Exception
    encountered during context initialization - cancelling refresh
    attempt: org.springframework.beans.factory.BeanCreationException:
    Error creating bean with name 'cronSchedulerExport' defined in class
    path resource [quartz/ExportConfig.class]: Bean instantiation via
    factory method failed; nested exception is
    org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.quartz.Scheduler]: Factory method
    'cronSchedulerExport' threw exception; nested exception is
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: pringframework.web.context.ContextLoader Context
    initialization failed
    org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'cronSchedulerExport' defined in class path
    resource [quartz/ExportConfig.class]: Bean instantiation via factory
    method failed; nested exception is
    org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.quartz.Scheduler]: Factory method
    'cronSchedulerExport' threw exception; nested exception is
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
      75)     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) Caused
    by: org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.quartz.Scheduler]: Factory method
    'cronSchedulerExport' threw exception; nested exception is
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
      at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
      ... 76 more Caused by:
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.getDelegate(JobStoreSupport.java:3218)
      ... 77 more Caused by: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate    at
    java.lang.J9VMInternals.newInstanceImpl(Native Method)    at
    java.lang.Class.newInstance(Class.java:1762)  at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.getDelegate(JobStoreSupport.java:3213)
      ... 96 more [11/29/19 9:05:21:537 MSK] 00000109 webapp        E
    com.ibm.ws.webcontainer.webapp.WebApp notifyServletContextCreated
    SRVE0283E: Exception caught while initializing context: {0}
                                     org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'cronSchedulerExport' defined in class path
    resource [quartz/ExportConfig.class]: Bean instantiation via factory
    method failed; nested exception is
    org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.quartz.Scheduler]: Factory method
    'cronSchedulerExport' threw exception; nested exception is
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
      at
    com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:813)
      at
    com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:1350)
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)     at
    com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892) Caused by:
    org.springframework.beans.BeanInstantiationException: Failed to
    instantiate [org.quartz.Scheduler]: Factory method
    'cronSchedulerExport' threw exception; nested exception is
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
      at
    org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
      ... 76 more Caused by:
    org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create
    delegate: org.quartz.impl.jdbcjobstore.oracle.OracleDelegate [See
    nested exception: java.lang.InstantiationException:
    org.quartz.impl.jdbcjobstore.oracle.OracleDelegate]   at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.getDelegate(JobStoreSupport.java:3218)
      at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.checkExists(JobStoreSupport.java:1988)
      at
    org.quartz.impl.jdbcjobstore.JobStoreSupport$23.execute(JobStoreSupport.java:1981)
      at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3864)
      at
    org.quartz.impl.jdbcjobstore.JobStoreTX.executeInLock(JobStoreTX.java:93)
      at
    org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3800)
      at org.quartz.impl.jdbcjobstore.JobStoreSupport.</p>
  </blockquote>
  
  <pre><code>org.quartz.impl.jdbcjobstore.NoSuchDelegateException: Couldn't create delegate:
  </code></pre>
  
  <p>The state of jobs is saved in _QRTZ - tables in database Oracle11g</p>