我写了一个最简单的定时器,有个问题每次weblogic启动后,我需要手动运行该类。可以在weblogic启动项里设置,让它启动weblogic自动运行该定时器类?package com.banner.util.tools;import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;public class JyztcxTimer {
Timer timer; public JyztcxTimer() {
timer = new Timer();
long daySpan = 24 * 60 * 60 * 1000; Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 47);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime(); timer.schedule(new RemindTask(), time); } class RemindTask extends TimerTask {
public void run() {
System.out.println("开始任务!!!!!!!");
//timer.cancel(); //Terminate the timer thread
}
} public static void main(String args[]) {
new JyztcxTimer();
}}
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;public class JyztcxTimer {
Timer timer; public JyztcxTimer() {
timer = new Timer();
long daySpan = 24 * 60 * 60 * 1000; Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 47);
calendar.set(Calendar.SECOND, 0);
Date time = calendar.getTime(); timer.schedule(new RemindTask(), time); } class RemindTask extends TimerTask {
public void run() {
System.out.println("开始任务!!!!!!!");
//timer.cancel(); //Terminate the timer thread
}
} public static void main(String args[]) {
new JyztcxTimer();
}}
import weblogic.common.T3StartupDef;
import weblogic.common.T3ServicesDef;
public class startuptest implements T3StartupDef {
public void setServices(T3ServicesDef services) {}
public String startup(String name, Hashtable args) throws Exception {
doTask.main();
return "Startup completed successfully";
}
}在weblogic中添加该任务以便在weblogic启动后自动执行,启动weblogic,在Console 左边的mydomain—> Deployment—>Startup & Shutdown里点击“Configure a new Startup Class...”
Name随便填,ClassName填PackageName.ClassName(该class必须实现startup接口)
Deployment Order:指定Startup class的启动顺序,当存在多个Startup class时Order小的先执行
Create就可以了,如果运行时提示class找不到,那需要在commEnv.cmd文件的WEBLOGIC_CLASSPATH中追加该class的路径
出现个问题,找不到类,谁知道明确设置
主要弄个简单的,项目时间比较紧。quarterz时间把握不了。
问题解决了,创建一个新的servlet,在它的init方法里调用我的定时类的方法,然后再web.xml里对那个servlet设置启动优先级<servlet>
<servlet-name>StartUp</servlet-name>
<servlet-class>com.banner.servlet.StartUp</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>