2014-04-04 6 views
13

próbuję wdrożyć aplikację internetową wiosna Tomcat 7.0.24 ale zawiesza przy starcie z ostatnich linii pokazujący jakTomcat 7 zawiesza się na Inicjowanie Wiosna korzeń WebApplicationContext

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: [[email protected]f] 
Apr 4, 2014 1:38:30 PM org.apache.catalina.core.ApplicationContext log 
INFO: Initializing Spring root WebApplicationContext 

Niedawno przeniesieni do Spring 4.0. 2 i używam klienta WebApplicationInitializer za pomocą adnotacji. Przed aktualizacją korzystałem z Spring 3 z czystą konfiguracją XML i działało dobrze. Mój plik web.xml wygląda następująco:

<?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> 

Oto moja internetowa aplikacja inicjująca:

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/*"); 
    } 
} 

Czy jest coś oczywiste, że jestem brakujące? Sprawdziłem wszystkie inne pytania/odpowiedzi na ten temat i nie znalazłem rozwiązania.

+3

Czy włączono rejestrowanie wiosenne? Co to znaczy? –

+1

Jaki jest najłatwiejszy sposób włączenia logowania Spring? –

+1

Z SLF4j, patrz [tutaj] (http://stackoverflow.com/questions/3387441/how-do-i-configure-spring-and-slf4j-to-that-i-can-get-logging). –

Odpowiedz

21

Ustanawiając odpowiedź na to, aby inni wiedzieli, co pomogło mi w tej konkretnej sytuacji. Włączenie rejestracji Spring pozwoliło mi zobaczyć, że połączenie z bazą danych było zawieszone. Rozwiązanie problemu bazy danych umożliwiło mojej aplikacji zakończenie wdrożenia.

+0

Rozwiązałem również mój problem. Mam aktywne kwerendy uruchomione na DB. Rzeczy zostały rozwiązane teraz –

+0

Co to jest zawieszony stan połączenia z bazą danych? – Stephane

+0

Dzięki. Był to również problem z połączeniem z bazą danych. – rj4u