Quarz ist eine großartige Idee, aber je nach Bedarf ein bisschen Overkill. Ich denke, Ihr Problem besteht darin, Ihren Dienst in ein Servlet zu stopfen, wenn Sie nicht wirklich eingehende HttpServletRequests abhören. Stattdessen sollten Sie einen ServletContextListener verwenden Ihren Dienst zu starten, und ein Timer, wie Maurice vorgeschlagen:
web.xml:
<listener>
<listener-class>com.myCompany.MyListener</listener-class>
</listener>
Und dann sieht Ihre Klasse wie folgt:
public class MyListener implements ServletContextListener {
/** the interval to wait per service call - 1 minute */
private static final int INTERVAL = 60 * 60 * 1000;
/** the interval to wait before starting up the service - 10 seconds */
private static final int STARTUP_WAIT = 10 * 1000;
private MyService service = new MyService();
private Timer myTimer;
public void contextDestroyed(ServletContextEvent sce) {
service.shutdown();
if (myTimer != null)
myTimer.cancel();
}
public void contextInitialized(ServletContextEvent sce) {
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
public void run() {
myService.provideSomething();
}
},STARTUP_WAIT, INTERVAL
);
}
}
welche meinst du mit auto-refresh? Tomcat macht das selbst. – Tobias