org.quartz.SchedulerException: регистрация заданий и триггеров не удалась
Я получаю нижеупомянутую ошибку при запуске моего веб-приложения с кварцевым планировщиком.
Я использую два подключения к базе данных и для кварца, я хочу использовать дерби, поэтому я дал менеджер транзакций дерби в моем конфигурационном файле.
В чем проблема в этом файле конфигурации, Как кварцевый планировщик пытается получить доступ к БД.
Мой конфигурационный файл выглядит следующим образом:
<context:annotation-config />
<context:component-scan base-package="com.chase.index" />
<ehcache:annotation-driven cache-manager="cacheManager" />
<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="/WEB-INF/ehcache.xml" />
</bean>
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/resources/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- Hibernate properties -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties">
</bean>
<!-- Datasource setup by Spring -->
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/example"
cache="true" resource-ref="true" lookup-on-startup="false"
proxy-interface="javax.sql.DataSource" />
<!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}" p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
p:password="${jdbc.password}"> </bean> -->
<bean id="customerSessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"
/> -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.generate_statistics">false</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.chase.index</value>
</list>
</property>
</bean>
<jee:jndi-lookup id="derbyDataSource" jndi-name="jdbc/derbyDataSource"
cache="true" resource-ref="true" lookup-on-startup="false"
proxy-interface="javax.sql.DataSource" />
<bean id="derbySessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="derbyDataSource"></property>
<!-- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"
/> -->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.generate_statistics">false</prop>
<prop key="hibernate.connection.release_mode">after_transaction</prop>
</props>
</property>
<property name="packagesToScan">
<list>
<value>com.chase.index</value>
</list>
</property>
</bean>
<util:map id="dataSourceMap">
<entry key="customerSessionFactory" value-ref="customerSessionFactory" />
<entry key="derbySessionFactory" value-ref="derbySessionFactory" />
</util:map>
<bean id="paramTransactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="derbySessionFactory" />
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="customerSessionFactory"></property>
</bean>
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
<!-- <bean id="runMeJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="runMeTask" /> <property name="targetMethod"
value="printMe" /> </bean> -->
<bean id="runMeTask" class="com.chase.index.scheduler.SyncDBDataTask" />
<bean name="runMeJob"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.chase.index.scheduler.SyncDBDataJob" />
<property name="jobDataAsMap">
<map>
<entry key="runMeTask" value-ref="runMeTask" />
</map>
</property>
</bean>
<!-- <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="runMeJob" /> <property name="repeatInterval"
value="5000" /> <property name="startDelay" value="1000" /> </bean> -->
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="runMeJob" />
<property name="cronExpression" value="0/5 * * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="autoStartup" value="true" />
<property name="waitForJobsToCompleteOnShutdown" value="true" />
<property name="transactionManager" ref="paramTransactionManager" />
<property name="jobDetails">
<list>
<ref bean="runMeJob" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
<tx:annotation-driven />
org.springframework.beans.factory.BeanCreationException: Ошибка создания бина с именем org.springframework.scheduling.quartz.SchedulerFactoryBean#0', определенного в ресурсе ServletContext [/WEB-INF/mvc-dispatcher-servlet.xml initoc: Invic: метод не удался; вложенное исключение - org.quartz.SchedulerException: регистрация заданий и триггеров не удалась: таблица / представление 'QRTZ_JOB_DETAILS' не существует. [См. Вложенное исключение: org.hibernate.exception.SQLGrammarException: Таблица / Представление 'QRTZ_JOB_DETAILS' не существует.] В org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) в org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) в org.springframework.beans.factory.300.Bean.Fe) в org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:681) в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext. 482) в org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) в org.springframework.web.context.ContextLoader.initWebApplicationContext(контекстная среда.конфигурации)..contextInitialized(ContextLoaderListener.java:106) в org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135) в org.apache.catalina.core.StandardContext.start(StandardContext.javag:46) apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) в org.apache.catalina.core.StandardHost.start(StandardHost.java:785) в org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) в org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) в org.apache.catalina.startup.Embedded.start(Embedded.java:825) в org.codehaus.mojo.tomcat.AbstractRunMojo.startContainer(AbstractRunMojo.java:558) в org.codehaus.mojo.tomcat.AbstractRunMojo.execute(AbstractRunMojo.java:255) в org.apache.joefManagerPlugin (DefaultBuildPluginManager.java:101) в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) в org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153 в) org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) в org.apache.maven.life.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) в org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) в org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) в org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) в org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) в org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) в org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) в org.apache.maven.cli.MavenCli.main(MavenCli.java:141) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessref.jpg).DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:601) в org.codehaus.plexus.classworlds.launcher.Launcher.launch2nh).codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) в org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) в org.codehaus.plexus.unchers., Launcher.main(Launcher.java:352) Причина: org.quartz.SchedulerException: Сбой регистрации заданий и триггеров: таблица / представление "QRTZ_JOB_DETAILS" не существует. [См. Вложенное исключение: org.hibernate.exception.SQLGrammarException: таблица / представление 'QRTZ_JOB_DETAILS' не существует.] В org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers (SchedulerAccessor.jrag.scr). quartz.SchedulerFactoryBean.afterPropertiesSet (SchedulerFactoryBean.java:514) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1612) в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.Java: 1549)... еще 42 Причина: org.hibernate.exception.SQLGrammarException: Таблица / Представление 'QRTZ_JOB_DETAILS' не существует. по адресу org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert (SQLExceptionTypeDelegate.java:82) по адресу org.hibernate.exception.internal.StandardSQLExceptionConverter.convert (StandardSQLExceptionConverter.java:iber).j.h..convert (SqlExceptionHelper.java:125) в org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert (SqlExceptionHelper.java:110) в org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandv.: 146) at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke (AbstractProxyHandler.java:81) в com.sun.proxy. $ Proxy45.prepareStatement (неизвестный источник) в sun.reflect.NativeMethodAccessorImpl.inke Собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.vo.et.jg (01.f) в org.quartz.impl.jdbcjobstore.Attribute RestoringConnectionInvocationHandler.invoke (AttributeRestoringConnectionInvocationHandler.java:73) по адресу com.sun.proxy..jdbcjobstore.JobStoreSupport.retrieveJob (JobStoreSupport.java:1385) в org.quartz.impl.jdbcjobstore.JobStoreSupport 245) по адресу org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock (JobStoreSupport.java:3723) по адресу org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob (JobStoreSuppqu.jorSoreg.jpg). (QuartzScheduler.java:1518) в org.quartz.impl.StdScheduler.getJobDetail (StdScheduler.java:498) в sun.reflect.NativeMethodAccessorImpl.invoke0(родной метод) в sun.reflect.NativeMetholor_ImpIventIn) в sun.reflect.DelegatingMethodA ccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:601) в org.springframework.util.ReflectionUtils.invokeMethod (ReflectionUtils.java:prf)..quartz.SchedulerAccessor.jobDetailExists (SchedulerAccessor.java:416) в org.springframework.scheduling.quartz.SchedulerAccessor.addJobToScheduler (SchedulerAccessor.java:341) в org.springframequor)... еще 45 Причина: java.sql.SQLSyntaxErrorException: Таблица / Представление 'QRTZ_JOB_DETAILS' не существует. в org.apache.derby.client.am.SQLExceptionFactory40.getSQLException (неизвестный источник) в org.apache.derby.client.am.SqlException.getSQLException (неизвестный источник) в org.apache.derby.client.am.Connection.prepareStatement (Неизвестный источник) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect.DelegatingMethodAccessorjjjjjjj.reflect.Method.invoke (Method.java:601) в org.apache.tomcat.jdbc.pool.ProxyConnection.invoke (ProxyConnection.java:125) в org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcIn.java: 94) в org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor.invoke (AbstractCreateStatementInterceptor.java:67) в org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke:) atdcc org.apache.tomcat.jdbc.pool.interceptor.ConnectionState.invoke (ConnectionState.java:140) в com.sun.proxy. $ Proxy 32.prepareStatement (Неизвестный источник) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) в sun.reflect.Deaffe java.lang.reflect.Method.invoke(Method.java:601) в org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation (ConnectionProxyHandler.java:138)... еще 69 вызвано: org.apache.derby.client.am.SqlException: Таблица / Представление 'QRTZ_JOB_DETAILS' не существует. в org.apache.derby.client.am.Statement.completeSqlca (Неизвестный источник) в org.apache.derby.client.net.NetStatementReply.parsePrepareError(Неизвестный источник) в org.apache.derby.client.net.NetStatementReply.parsePRQL (Неизвестный источник) в org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Неизвестный источник) в org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Неизвестный источник) в org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Неизвестный источник) в org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Неизвестный источник) в org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInapp Source.utOut (ory).client.am.PreparedStatement.flowPrepareDescribeInputOutput(неизвестный источник) в org.apache.derby.client.am.PreparedStatement.prepare(неизвестный источник) в org.apache.derby.client.am.Connection.prepareStatementX(неизвестный источник). Еще 85
3 ответа
I got a similar exception recently when deploying an application on JBoss EAP 7.3.
ERROR XXXXXX.systemupdate.internal.ApplicationStateInitializer - [User:unknown] Error in determineAndSetApplicationState:
XXXXXX.common.beans.NoSuchBeanException: The requested bean(s) of type 'org.springframework.scheduling.quartz.SchedulerFactoryBean' could not be found.
at XXXXXX.spring.SpringBeanFactoryAdapter.getBeansOfType(SpringBeanFactoryAdapter.java:77)
at XXXXXX.common.beans.BeanLocator.getBeansOfType(BeanLocator.java:113)
at XXXXXX.systemupdate.internal.SystemUpdateContributorController.startSchedulerJobs(SystemUpdateContributorController.java:376)
at XXXXXX.systemupdate.internal.SystemUpdateContributorController.setApplicationStateToReady(SystemUpdateContributorController.java:369)
at XXXXXX.systemupdate.internal.ApplicationStateInitializer.determineAndSetApplicationState(ApplicationStateInitializer.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1912)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1854)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:782)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:774)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:173)
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:153)
at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:95)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:174)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:204)
at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:186)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:252)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.lang.Thread.run(Thread.java:748)
at org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clusterSchedulerFactoryBean' defined in class path resource [XXX.xml]: Invocation of init method failed; nested exception is org.quartz.SchedulerException: Registration of jobs and triggers failed: oracle/sql/BLOB
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:671)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:659)
at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1300)
at XXXXXX.spring.SpringBeanFactoryAdapter.getBeansOfType(SpringBeanFactoryAdapter.java:74)
... 49 more
Caused by: org.quartz.SchedulerException: Registration of jobs and triggers failed: oracle/sql/BLOB
at org.springframework.scheduling.quartz.SchedulerAccessor.registerJobsAndTriggers(SchedulerAccessor.java:265)
at org.springframework.scheduling.quartz.SchedulerFactoryBean.afterPropertiesSet(SchedulerFactoryBean.java:505)
at XXXXXX.scheduling.QuartzConfig.afterPropertiesSet(QuartzConfig.java:45)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
... 59 more
Debugging (spring is swallowing the exception) revealed the root cause
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.lang.Thread.run(Thread.java:748)
at org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: java.lang.ClassNotFoundException: oracle.sql.BLOB from [Module "deployment.XXXX.war" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
Turned out that I forgot to register the oracle driver as a global module by adding the following after
<subsystem xmlns="urn:jboss:domain:ee:4.0">
in standalone.xml
<global-modules>
<module name="com.oracle" slot="main"/>
</global-modules>
Если у вас есть Quartz Api 2+, вам нужно позаботиться о следующих шагах:
- Замените JobDetailBean на JobDetailFactoryBean
- Заменить CronTriggerBean на CronTriggerFactoryBean
Вам также необходимо сделать следующее:
Если вы получаете ошибку долговечности во время инициализации компонента, используйте
<property name="durability" value="true"/>
в работе боб.
Основная причина вашей проблемы java.sql.SQLSyntaxErrorException: Table/View 'QRTZ_JOB_DETAILS' does not exist
Проверьте, есть ли таблица QRTZ_JOB_DETAILS
присутствует в схеме базы данных, к которой вы подключаетесь. Также проверьте, имеют ли учетные данные, с которыми вы обращаетесь к этой схеме, доступ к этой таблице.