2010-04-28 9 views
0

Je veux être en mesure de charger ma configuration pour la webapp au démarrage de tomcat (bibliothèque de configuration communes apache) est-ce une façon possible:Comment charger un fichier de configuration au démarrage dans les tomcat

public class MyAppCfg implements javax.servlet.ServletContextListener { 

private ServletContext context = null; 

@Override 
public void contextInitialized(ServletContextEvent event) { 
    try{ 
     this.context = event.getServletContext(); 

     XMLConfiguration config = new XMLConfiguration("cfg.xml"); 
     config.setReloadingStrategy(new FileChangedReloadingStrategy()); 

     this.context.setAttribute("mycfg", config); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

@Override 
public void contextDestroyed(ServletContextEvent arg0) { 
    this.context = null; 
    } 
} 

web. xml

<listener> 
    <listener-class>mypackage.MyAppCfg</listener-class>  
</listener> 

et plus tard les accés à la webapp via

this.cfg = (XMLConfiguration) servletRequest.getAttribute("mycfg"); 

Répondre

1

non Vous ne seriez pas en mesure de obtenir la configuration de cette façon. Vous le définissez dans le contexte de servlet mais en le récupérant dans le contexte de la requête.

Vous devez récupérer le cfg dans votre Servlet cette initialisation comme,

public void init(final ServletConfig config) { 
     // log it to the ServletContext 
     ServletContext context = config.getServletContext(); 
     this.cfg = (Configuration)context.getAttribute("mycfg"); 
}