cancel
Showing results for 
Search instead for 
Did you mean: 

Alfresco 6.1 scheduled job

sandhya_nair
Confirmed Champ
Confirmed Champ

Hi,

I want to create a scheduled job for alfresco 6.1. I am getting the below error for the class.

Caused by: java.lang.ClassNotFoundException: org.springframework.scheduling.quartz.JobDetailBean

<bean id="org.alfresco.tutorial.scheduledjob.actions.ScheduledJobExecuter"
class="org.alfresco.tutorial.scheduledjob.actions.ScheduledJobExecuter">
<property name="serviceRegistry">
<ref bean="ServiceRegistry" />
</property>
</bean>

<bean id="org.alfresco.tutorial.scheduledjob.jobDetail"
class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass">
<value>org.alfresco.tutorial.scheduledjob.jobs.ScheduledJob</value>
</property>
<property name="jobDataAsMap">
<map>
<entry key="jobExecuter">
<ref bean="org.alfresco.tutorial.scheduledjob.actions.ScheduledJobExecuter" />
</entry>
<entry key="jobLockService">
<ref bean="jobLockService" />
</entry>
</map>
</property>
</bean>

<bean id="org.alfresco.tutorial.scheduledjob.trigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="org.alfresco.tutorial.scheduledjob.jobDetail" />
</property>
<property name="cronExpression">
<value>${org.alfresco.tutorial.scheduledjob.cronexpression}</value>
</property>
<property name="startDelay">
<value>${org.alfresco.tutorial.scheduledjob.cronstartdelay}</value>
</property>
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="org.alfresco.tutorial.scheduledjob.trigger"/>
</list>
</property>
</bean>

I have changed the class to org.springframework.scheduling.quartz.JobDetailFactoryBean & org.springframework.scheduling.quartz.CronTriggerFactoryBean, then the class not found exception is gone but the job is not running.

Has anyone created a scheduled job alfresco 6.1 SDK 4?

1 ACCEPTED ANSWER

sandhya_nair
Confirmed Champ
Confirmed Champ

I have found the solution for this. the below link is not an updated one.

Scheduled Jobs | Alfresco Documentation 

Below configration is working.

<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="schedulerAccessor"
class="org.springframework.scheduling.quartz.SchedulerAccessorBean">
<property name="scheduler" ref="schedulerFactory" />
<property name="triggers">
<list>
<ref bean="testJobTrigger" />
</list>
</property>
</bean>

<bean id="testJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="cronExpression" value="0 0/2 * * * ?" />
<property name="startDelay" value="${system.cronJob.startDelayMilliseconds}" />
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="org.alfresco.tutorial.scheduledjob.actions.ScheduledJobExecuter" />
<property name="jobDataAsMap">
<map>
<entry key="jobLockService">
<ref bean="jobLockService" />
</entry>
</map>
</property>
</bean>
</property>
</bean>

</beans>

View answer in original post

2 REPLIES 2

sandhya_nair
Confirmed Champ
Confirmed Champ

I have found the solution for this. the below link is not an updated one.

Scheduled Jobs | Alfresco Documentation 

Below configration is working.

<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="schedulerAccessor"
class="org.springframework.scheduling.quartz.SchedulerAccessorBean">
<property name="scheduler" ref="schedulerFactory" />
<property name="triggers">
<list>
<ref bean="testJobTrigger" />
</list>
</property>
</bean>

<bean id="testJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="cronExpression" value="0 0/2 * * * ?" />
<property name="startDelay" value="${system.cronJob.startDelayMilliseconds}" />
<property name="jobDetail">
<bean class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="org.alfresco.tutorial.scheduledjob.actions.ScheduledJobExecuter" />
<property name="jobDataAsMap">
<map>
<entry key="jobLockService">
<ref bean="jobLockService" />
</entry>
</map>
</property>
</bean>
</property>
</bean>

</beans>

afaust
Legendary Innovator
Legendary Innovator

Alfresco 6.x has updated Quartz libraries. This has changed how jobs need to be registered a bit, so most of the examples you can find on the internet won't work because they address versions of Alfresco before 6.x. You can look at the Alfresco source code itself to find how jobs can be registered now.