Ho una semplice applicazione Java che devo essere in esecuzione in qualsiasi momento (anche per avviarla automaticamente al riavvio del server).
Ho pensato a un service wrapper, ma la versione di Windows è stata pagata.
Esiste un modo per configurare Tomcat in modo che esegua automaticamente una classe specifica da un progetto o qualsiasi altra soluzione che possa fornire lo stesso risultato?esegui l'applicazione java non web su tomcat
risposta
Penso che il tuo bisogno sia di avere un'applicazione (qualunque sia web o non web) che inizi con tomcat allo stesso tempo.
Bene, è necessario disporre di una semplice applicazione Web che registri un listener (che ascolta l'evento di avvio dell'applicazione, ovvero l'evento di avvio di Tomcat) e avvia la classe.
E 'molto semplice nel vostro web.xml si dichiara un ascoltatore come questo:
<listener>
<description>application startup and shutdown events</description>
<display-name>ApplicationListener</display-name>
<listener-class>com.myapp.server.config.ApplicationListener</listener-class>
</listener>
E in voi ApplicationListener classe che si implementa l'interfaccia ServletContextListener. Ecco un esempio:
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 google rapido mostra una serie di opzioni:
- Java Service Wrapper (probabilmente quello citato)
- Yet Another Java Service Wrapper (Basato su JSW e progettato per essere in gran parte compatibile)
- Windows Service Wrapper (qualsiasi applicazione come servizio, solo per Windows)
- Commons Daemon (quella utilizzata da Tomcat)
Infine se lo si desidera in Tomcat (come parte di un'app Web), quindi qualcosa come Quartz Scheduler.
dare uno sguardo su:
- http://wrapper.tanukisoftware.com/doc/english/download.jsp
- http://commons.apache.org/daemon/jsvc.html
Entrambi vi aiuterà ad eseguire l'applicazione Java come un servizio. Se tuttavia si desidera eseguire l'accoppiamento della propria applicazione con tomcat, è possibile implementare la propria semplice applicazione Web che esegue la propria applicazione. È possibile utilizzare
- servlet che inizia all'avvio del server (configurare questo in web.xml)
- filtro HTTP
- ServletContextListener.
- 1. Esegui Java EE 7 WebSockets in Tomcat 7
- 2. Tomcat & Spring Web - Classe non trovata Eccezione org.springframework.web.context.ContextLoaderListener
- 3. php java bridge non funziona su tomcat 6
- 4. Esegui l'applicazione Java come amministratore su Windows
- 5. Esegui JSP direttamente da Java
- 6. Distribuzione del servizio Web JAX-WS su Tomcat
- 7. Applicazione web in esecuzione sia su Jetty che su Tomcat
- 8. Esercitazione per la creazione di servizi Web RESTful con Java, Eclipse. Apache Tomcat, non funzionante
- 9. L'app Web Java in tomcat si blocca periodicamente
- 10. Come implementare SSO su un'applicazione Web tomcat esistente
- 11. Perché lapplicazione non funziona su oggetti S4 che hanno un metodo as.list.default?
- 12. Tomcat non sta distribuendo il mio progetto web da Eclipse
- 13. Esegui server Web Apache locale + Tomcat come parte di Gradle Build
- 14. Azure Java Tomcat accedendo
- 15. Netbeans: distribuzione di app Java su remoto Tomcat
- 16. Java: esegui come amministratore
- 17. PHP su Tomcat 8
- 18. Come posso eseguire un'applicazione Java su Apache 2.2 senza Tomcat?
- 19. Tapestry Web App su Tomcat sputa occasionalmente spazzatura
- 20. Esegui codice Java online
- 21. errore su caratteri XML non validi su Java
- 22. Esegui file di classe Java da script PHP su un sito Web
- 23. Esecuzione di Java su un server Web
- 24. L'applicazione Web distribuita su tomcat è lenta al primo accesso?
- 25. Tomcat non si avvia
- 26. Tomcat non potrebbe iniziare
- 27. JSF su Tomcat - perché è possibile?
- 28. Eclipse - Pubblica & Esegui progetto Web semplice
- 29. Come aggiornare Tomcat su Linux
- 30. mvn tomcat: run non avvia Tomcat
Un semplice avvio automatico non è sufficiente? – kutschkem
Che tipo di programma è? Ha UI ecc.? diversamente è possibile creare un contextclist o un servlet di tomcat e nel metodo init è possibile avviare il programma. – Sap
Non c'è interfaccia utente. L'applicazione invia semplicemente una richiesta POST ogni 10 minuti e analizza il risultato. Una cosa importante è che devo anche controllare l'output del registro (System.out) – pantominas