So che Tomcat e la specifica Servlet do not support starting webapps in a particular order.Tomcat - avvio di webapp in un ordine specifico
Tuttavia, questo mi sembra un caso di utilizzo comune e mi chiedo se qualcuno abbia scoperto un'intelligente soluzione alternativa.
Ho una webapp A che utilizza Spring Remoting per esporre un servizio condiviso, di cui webapp B è un client. Webapp B non può essere inizializzato a meno che webapp A non sia in esecuzione. Tuttavia, Tomcat avvia sempre le app Web in modo lineare, iniziando con la webapp B.
Per motivi di infrastruttura, è necessario che siano in esecuzione sullo stesso server Tomcat.
Qualche idea?
Grazie, Roy
UPDATE -
Risulta che nel mio caso particolare, l'ordine non importa. Il motivo è questo: dire che uso uno dei metodi seguenti per avviare l'app A prima dell'app B. Quindi l'app A parte, ma, dal momento che il servizio remoting di Spring utilizza l'Invoker HTTP, la porta HTTP non è ancora aperta (non si aprirà fino al tutte le app sono state avviate). Quindi A inizierà e B si bloccherà perché la porta che sta cercando non è ancora disponibile. Doh.
Il risultato finale era di due istanze Tomcat separate.
Fare in modo che l'app Web che deve attendere l'altra app Web, invece di fallire e arrendersi, attendere. –
Hey Dave, unf. non iniziano in parallelo .. B inizia (beh, prova ad avviarsi) e A inizierà dopo. Ma se B non può avviarsi perché non può connettersi ad A, A non tenta mai di avviarsi. –
Dovrebbe avviarli in ordine ASCII. Un trucco che vedo sulle installazioni di Debian Apache è creare una convenzione di denominazione 00_default 000_default. Ciò lo rende un po 'più chiaro quando si visualizza l'ordine ASCII dell'elenco di directory. – speeves