J'ai une application Java simple que je dois exécuter à tout moment (aussi pour démarrer automatiquement sur le redémarrage du serveur).
J'ai pensé sur une enveloppe de service, mais la version Windows est payée.
Existe-t-il une manière que je puisse configurer Tomcat pour exécuter une classe spécifique à partir d'un projet automatiquement ou toute autre solution pouvant donner le même résultat? P>
3 Réponses :
Un rapide Google montre un tas d'options: p>
Enfin, si vous le souhaitez à Tomcat (dans le cadre d'une application Web), alors quelque chose comme planificateur de quartz . < / p>
Jetez un coup d'oeil sur: P>
Les deux vous aideront à exécuter Java Application en tant que service. Si toutefois, vous souhaitez exécuter un couple votre application avec Tomcat, vous pouvez implémenter votre propre application Web simple qui exécute votre application. Vous pouvez utiliser p>
Je pense que votre besoin est d'avoir une application (quel que soit le Web ou non Web) qui commence par Tomcat en même temps.
Eh bien, vous devez avoir une application Web simple qui enregistre un auditeur (qui écoute le Evénement de démarrage d'application Ie Evénement de démarrage Tomcat) et lance votre classe. P>
C'est très simple dans votre web.xml Vous déclarez un auditeur comme celui-ci: p>
import java.io.File;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Class to listen for application startup and shutdown
*
* @author HBR
*
*/
public class ApplicationListener implements ServletContextListener {
private static Logger logger = Logger.getLogger(ApplicationListener.class);
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
logger.info("class : context destroyed");
}
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
ServletContext context = servletContextEvent.getServletContext();
///// HERE You launch your class
logger.info("myapp : context Initialized");
}
}
Un simple automate est-il suffisant?
Quel genre de programme s'agit-il? A-t-il eu de l'interface utilisateur? Sinon, vous pouvez simplement créer un auditeur de contexte Tomcat ou un servlet et dans la méthode init, vous pouvez démarrer votre programme.
Il n'y a pas d'interface utilisateur. L'application envoie simplement une demande postale toutes les 10 minutes et analyse le résultat. Une chose importante est que j'ai aussi besoin de garder check sur la sortie du journal (System.out)