Sì, c'è un modo per farlo ma credo che sia ancora specifico di WebSphere. Abbiamo avuto lo stesso problema alcuni anni fa, un'applicazione che richiedeva molte configurazioni sarebbe comunque stata visualizzata come avviata anche quando si è verificato un errore grave. L'unico modo per dire era di guardare il file di log e vedere se si erano verificate eccezioni (e l'interfaccia utente web non funzionava molto bene).
Il modo standard per gestire il ciclo di vita, che sembra funzionare sulla maggior parte dei contenitori, è ServletContextListener ma, come è stato rilevato, non esiste un modo elegante per gestire gli errori di avvio.
In WebSphere (per alcune versioni comunque) esiste il concetto di bean di avvio. Piuttosto che cercare di spiegare in dettaglio come è stato un paio di anni fa, che ho fatto questo si può dare un'occhiata a questo link http://publib.boulder.ibm.com/inforcenter...
Questo permette in sostanza di creare un bean EJB che implementa due metodi:
public boolean start() {
return new Delegate().start();
}
public void stop() {
new Delegate().stop();
}
Se si restituisce true dal metodo start, restituisce un avvio corretto, altrimenti restituendo false arresti all'avvio dell'applicazione in modo tale che l'applicazione indicherà che non è stato avviato. Abbiamo implementato un delegato per svolgere il lavoro in modo da poterlo collegare al bean di avvio o a ServletContextListener se il contenitore non implementava i bean di avvio.
L'unica cosa aggiuntiva con i bean di avvio è che in WebSphere è necessario abilitare il servizio Esecuzione dei bean nella Console di amministrazione altrimenti non verranno eseguiti e l'app non avvierà alcuna inizializzazione ma verrà comunque visualizzata come avviata quando tu provi ad avviarlo. Ci sono informazioni su come farlo dalla pagina sopra.
Sono sicuro che ci sono informazioni più dettagliate in un Redbook IBM su questo, ma al momento non riesco a individuarlo.
fonte
2009-08-26 22:37:09
Possibile duplicato - http://stackoverflow.com/questions/272194/abort-java-webapp-on-startup –