2012-01-10 11 views
5

Sono qualche dubbio sul funzionamento gatto che venire attraverso il mio sviluppo webapp:Shutdown Tomcat applicazione utilizzando Web distribuito in esso

  1. Esiste un modo per spegnere Tomcat sé dalla webapp schierato in esso?
  2. tomcat sta eseguendo tutte le sue applicazioni web/war all'interno di una JVM o di una singola JVM o è configurabile in qualche file di configurazione?
  3. È possibile aumentare le dimensioni dell'heap java per la specifica webapp distribuita all'interno di tomcat?

Grazie mille.

risposta

7
  1. connessione TCP aperta da qualche servlet e inviare "ARRESTO" per porta di arresto di Tomcat (default: 8005).
  2. Un Tomcat utilizza una JVM per tutte le applicazioni.
  3. No. Solo per l'intera JVM.

Ecco il codice per il punto 1:

Socket clientSocket = new Socket("localhost", 8005); 
clientSocket.getOutputStream().write("SHUTDOWN".getBytes()); 
clientSocket.getOutputStream().close(); 
clientSocket.close(); 
+1

forniti solo il comando shutdown è uguale a "shutdown" e in ascolto sulla porta 8005 - entrambi possono essere cambiati. C'è un'API per recuperare entrambi: 'Server server = org.apache.catalina.ServerFactory.getServer(); int port = server.getPort(); String shutdown = server.getShutdown(); ' –

+0

Ovviamente questi devono essere veri. L'utilizzo di 'org.apache.catalina.ServerFactory' è migliore ma è necessario includere dipendenze nelle librerie Tomcat in es. Eclisse. –

+0

Quindi cosa? Preferirei includere i pacchetti necessari piuttosto che codificare i valori della porta tutto da solo per ogni soluzione diversa. –

Problemi correlati