Schedulable & jboss-service.xml
rabbiaqaswar Apr 20, 2008 10:21 AMHello
I am trying to use the Scheduler service provided by JBoss 4.2.2 GA. Here is how the scheduler-service in default/deploy directory looks like:
<?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="org.jboss.varia.scheduler.Scheduler" name=":service=Scheduler"> <attribute name="StartAtStartup">true</attribute> <attribute name="SchedulableClass">org.schedular.MySchedular</attribute> <attribute name="SchedulableArguments">TheName,123456789</attribute> <attribute name="SchedulableArgumentTypes">java.lang.String,long</attribute> <attribute name="InitialStartDate">NOW</attribute> <attribute name="SchedulePeriod">1000</attribute> <attribute name="InitialRepetitions">5</attribute> <depends> <mbean code="javax.management.timer.Timer" name="jboss:service=Timer"/> </depends> </mbean> </server>
and here is the Scheduler class:
package org.schedular; import java.util.Date; import org.jboss.varia.scheduler.Schedulable; public class MySchedular implements Schedulable { private String name; private long value; public MySchedular(String name, long value) { this.name = name; this.value = value; System.out.println("ctor, name: " + name + ", value: " + value); } public void perform(Date now, long remainingRepetitions) { System.out.println("perform, now: " + now + ", remainingRepetitions: " + remainingRepetitions + ", name: " + name + ", value: " + value); } }
This MySchedular is part of an ejb-module of the application so I have to place it inside the jar file containing all the ejbs. Now the problem is that when i start JBoss it gives the following error:
[Scheduler] Failed to find: org.schedular.MySchedular java.lang.ClassNotFoundException: No ClassLoaders found for: org.schedular.MySchedular --- MBeans waiting for other MBeans --- ObjectName: jboss:service=Scheduler State: FAILED Reason: org.jboss.deployment.DeploymentException: Exception setting attribute javax.management.Attribute@d006a7 on mbean jboss:service=Scheduler; - nested throwable: (java.security.InvalidParameterException: Given class org.schedular.MySchedular is not not found)
When the jar file containing MySchedular is deployed, JBoss deploys it successfully. But the perform method in MySchedular is not executed. Now while the server is running, i make any changes like add an empty line in the scheduler-service.xml and save it, MySchedular perform method is invoked showing:
INFO [STDOUT] ctor, name: TheName,value: 123456789 INFO [STDOUT] perform, now: Sun Apr 20 18:15:55 GST 2008, remainingRepetitions: 4, name: TheName,value: 123456789 INFO [STDOUT] perform, now: Sun Apr 20 18:15:56 GST 2008, remainingRepetitions: 3, name: TheName,value: 123456789 INFO [STDOUT] perform, now: Sun Apr 20 18:15:57 GST 2008, remainingRepetitions: 2, name: TheName,value: 123456789 INFO [STDOUT] perform, now: Sun Apr 20 18:15:58 GST 2008, remainingRepetitions: 1, name: TheName,value: 123456789
I cannot understand what am I missing here, please see if you can help.
Thanks