在jboss启动时加载class的方法
A
.
编写class,要import
org.jboss.varia.scheduler.
Schedulable
包,此包在
%JBOSS_DISC%
/server/all/lib
目录下,同时要把编译好的
class(
压成包
)
放在
%JBOSS_DISC%
/server/all/lib
目录下,以便能加载。
B
.修改%JBOSS_DISC%/server/all/conf/jboss-service.xml文件
添加以下相似文字:
<!--======================================================= -->
<!-- Scheduler Initialization
定时操作 -->
<!--======================================================= -->
<mbean code="org.jboss.varia.scheduler.Scheduler"
name="jboss. piosan.util:service=Scheduler">
<attribute name="StartAtStartup">true</attribute>
<attribute name="SchedulableClass">com.piosan.util.PiosanTimer</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">-1</attribute>
</mbean>
<!—name
为任意但唯一,com.piosan.util.PiosanTimer为class名 -->
<!—SchedulableArguments
的值为传递参数,这里为两个参数,theName为String型,123456789为long型,在SchedulableArgumentTypes中体现了参数的类型 -->
<!—SchedulePeriod
的值为每隔1秒操作一次 -->
<!—InitialRepetitions
的值为一共执行多少次,如果为-1,则不停的循环执行—>
C
.
附上PiosanTimer.java源代码例子
package
com.piosan.util
;
import
java.util.Date;
import
org.jboss.varia.scheduler.*;
public
class PiosanTimer implements Schedulable {
private String name;
private long value;
public PiosanTimer(String name,long value){
this.name = name;
this.value = value;
System.out.println("name="+name+" value="+value);
}
/**
*JBoss
启动时会自动执行此函数,所以可以在此函数中可以执行一些初始化的方法,
*
例如Load Cache
*/
public
void perform(Date now,long remainingRepetitions) {
System.out.println("perform,now:"+now+
",remainingRepetitions: "+remainingRepetitions+
",name: "+name+ ",value: "+value);
}
}