我写了一个最简单的定时器,有个问题每次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();
    }}

解决方案 »

  1.   

    找到一点答案import java.util.Hashtable;
    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的路径
    出现个问题,找不到类,谁知道明确设置
      

  2.   

    让weblogic来做不合适,毕竟是你的应用逻辑,要考虑以后移植性建议你的J2EE应用里使用quarterz框架,类似Unix的cronjob,实现定时任务足够了
      

  3.   


    主要弄个简单的,项目时间比较紧。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>