Tomcat 7 se bloque lors de l'initialisation de Spring root WebApplicationContext
Je suis en train de déployer un Ressort d'applications web Tomcat 7.0.24 mais il se bloque au démarrage avec les dernières lignes montrant que
INFO: Deploying web application archive /usr/local/apps/tomcat-7.0.42/webapps/server-webapp.war
Apr 4, 2014 1:38:28 PM org.apache.catalina.core.ApplicationContext log
INFO: Spring WebApplicationInitializers detected on classpath: [com.verical.marketplace.init.MarketplaceWebAppInitializer@6a05fdf]
Apr 4, 2014 1:38:30 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
J'ai récemment mis à jour pour le Printemps 4.0.2 et je suis à l'aide d'un client WebApplicationInitializer via des annotations. Avant la mise à niveau, j'ai été en utilisant le Printemps 3 pure XML de config et il a très bien fonctionné. Mon web.xml fichier ressemble à ceci:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd"
version="3.0">
<!-- Define the mime mappings -->
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<!-- Define the welcome file list -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Define the default session timeout value -->
<session-config>
<session-timeout>240</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
</session-config>
Voici mon application web initialiseur:
public class MarketplaceWebAppInitializer implements WebApplicationInitializer
{
@Override
public void onStartup(ServletContext container)
{
//Instantiate a new web application context
XmlWebApplicationContext rootContext = new MarketplaceXmlWebApplicationContext(container);
//Add the various listeners
container.addListener(new ContextLoaderListener(rootContext));
container.addListener(new RequestContextListener());
//Set the locations of the configuration files
rootContext.setConfigLocations(
new String[]
{
"applicationContext.xml",
"config/api-beans.xml",
"config/hibernate-beans.xml",
"config/security-beans.xml",
"config/service-beans.xml",
"config/settings-beans.xml",
"config/utility-beans.xml",
"config/mvc/web-beans.xml",
"config/jmx-beans.xml",
"config/ws/ws-beans.xml"
}
);
//Add the dispatcher servlet
ServletRegistration.Dynamic mvc =
container.addServlet("mvc", new DispatcherServlet(rootContext));
mvc.setLoadOnStartup(1);
mvc.setInitParameter("dispatchOptionsRequest", "true");
mvc.addMapping("/api/*");
mvc.addMapping("/html/*");
//Add the web services servlet
ServletRegistration.Dynamic ws =
container.addServlet("ws", new MessageDispatcherServlet(rootContext));
ws.setLoadOnStartup(2);
ws.setInitParameter("transformWsdlLocations", "true");
ws.addMapping("/service/*");
//Add the spring security filter
FilterRegistration.Dynamic springSecurityFilter =
container.addFilter("springSecurityFilterChain",
new DelegatingFilterProxy("springSecurityFilterChain"));
springSecurityFilter.addMappingForUrlPatterns(null, true, "/j_spring_security_check");
springSecurityFilter.addMappingForUrlPatterns(null, true, "/j_spring_security_logout");
springSecurityFilter.addMappingForUrlPatterns(null, true, "/api/*");
springSecurityFilter.addMappingForUrlPatterns(null, true, "/html/*");
//Add the static content filter
FilterRegistration.Dynamic staticContentFilter =
container.addFilter("staticContentFilter", new StaticContentFilter());
staticContentFilter.addMappingForUrlPatterns(null, true, "/static/*");
staticContentFilter.addMappingForUrlPatterns(null, true, "/generated/*");
//Add the logger filter
FilterRegistration.Dynamic loggerFilter =
container.addFilter("loggerFilter", new LoggerFilter());
loggerFilter.addMappingForUrlPatterns(null, true, "/api/*");
loggerFilter.addMappingForUrlPatterns(null, true, "/html/*");
}
}
Est-il évident que je suis absent? J'ai vérifié toutes les autres questions/réponses sur ce sujet et n'ai pas trouvé une solution.
source d'informationauteur Matt Crysler
Vous devez vous connecter pour publier un commentaire.
Définition d'une réponse à cette afin que d'autres personnes savent ce qui m'a aidé dans cette situation particulière. Tournage sur le Printemps de journalisation m'a permis de voir que d'une connexion de base de données est dans un état bloqué. Résoudre le problème de base de données a permis à mon application pour terminer le déploiement.