2016-05-26 5 views
1

Ich habe einen customcontextloaderlistener geschrieben und es wird aufgerufen, wenn die Webanwendung gestartet wird.Stoppen Sie die Spring-Web-Anwendung, wenn eine Bean-Initialisierung fehlschlägt

public class CustomContextLoaderListener extends ContextLoaderListener { 
    private Logger log = Logger.getLogger(CustomContextLoaderListener.class); 

    public void contextInitialized(ServletContextEvent sce){ 

     WebApplicationContext wctx = new ContextLoader().initWebApplicationContext(sce.getServletContext()); 
     AppContext.setWebApplicationContext(wctx); 
     wctx.getBeanDefinitionCount(); 
     String [] beanNames = wctx.getBeanDefinitionNames(); 
     for(String beanName : beanNames){ 
     log.info(beanName); 
     } 

Jetzt, wenn es einen Fehler in der Bean-Initialisierung gibt, möchte ich die Webanwendung stoppen. Also denke ich, dass ich so etwas tun kann.

public class CustomContextLoaderListener extends ContextLoaderListener { 
     private Logger log = Logger.getLogger(CustomContextLoaderListener.class); 

     public void contextInitialized(ServletContextEvent sce){ 

try { 
      WebApplicationContext wctx = new ContextLoader().initWebApplicationContext(sce.getServletContext()); 
      AppContext.setWebApplicationContext(wctx); 
      wctx.getBeanDefinitionCount(); 
      String [] beanNames = wctx.getBeanDefinitionNames(); 
      for(String beanName : beanNames){ 
      log.info(beanName); 
      } 
}catch(Exception e) { 
     contextDestroyed(sce) 
} 

public void contextDestroyed(ServletContextEvent sce) { 

// not sure how should I stop the web app here.. 

any ideas 

} 

Antwort

-1

Sie könnten etwas tun, wie unten:

private void callExceptionHandler(Exception exception) { 
    logger.error("failed to create bean: ", exception); 
    System.exit(1); 
} 

Sie oben Methode von contextInitialized Methode nennen könnte:

catch(Exception e) { 
     callExceptionHandler(e) 
} 
+0

Ja, ich bin nicht sicher, ob ich möchte System.exit verwenden in meiner Web-App – user641887