2009-10-07 7 views
0

J'ai une application printanière mvc et j'exécute des tests en utilisant jetty. Parfois le chargement du contexte échoue totalement, parce que le mauvais XML ou parce que l'exception de classe non trouvée ou parce qu'un bean lève une exception dans le constructeur, le setter ou la méthode d'initialisation.spring mvc: détecter si une exception a été levée lors du chargement du contexte

Dans un tel cas, je voudrais arrêter l'application avec System.exit(1) ou prendre une autre mesure drastique et ne pas continuer le cycle de test plus loin.

Comment cela peut-il être fait?

Répondre

3

Comment chargez-vous le contexte? Via l'écouteur de contexte? Définissez votre propre (Déployez ContextLoaderListener et outrepasser contextInitialized()) et invoquez System.exit (1) lors de l'initialisation du contexte échoue:

@Override 
public void contextInitialized(ServletContextEvent event) { 
    try { 
     super.contextInitialized(event); 
    } catch (Throwable T) { 
     T.printStackTrace(); 
     System.exit(1); 
    } 
} 

Mise à jour Pour DispatcherServlet, utilisez la même approche, mais remplacer la méthode initWebApplicationContext():

@Override 
protected WebApplicationContext initWebApplicationContext() throws BeansException { 
    try { 
     super.initWebApplicationContext(); 
    } catch (Throwable T) { 
     T.printStackTrace(); 
     System.exit(1); 
    } 
} 
+0

Je ne charge pas le contexte par moi-même. Le servlet Dispatcher le fait. – flybywire

+0

@flybywire - c'est pourquoi j'ai demandé comment votre contexte était initialisé. Voir ma mise à jour – ChssPly76

Questions connexes