Java – Tomcat 7 suspends initialization of spring root webapplicationcontext

I tried to deploy a spring web application to Tomcat 7.0 24, but it hangs at startup, and the last line is displayed as

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

I recently upgraded to spring 4.0 2, and use the client webapplicationinitializer through comments Before the upgrade, I used spring 3 configured in pure 3 XML, which worked well My web The XML file is as follows:

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

This is my web application initializer:

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,"/j_spring_security_logout");
    springSecurityFilter.addMappingForUrlPatterns(null,"/api/*");
    springSecurityFilter.addMappingForUrlPatterns(null,"/html/*");

    // Add the static content filter
    FilterRegistration.Dynamic staticContentFilter =
            container.addFilter("staticContentFilter",new StaticContentFilter());
    staticContentFilter.addMappingForUrlPatterns(null,"/static/*");
    staticContentFilter.addMappingForUrlPatterns(null,"/generated/*");

    // Add the logger filter
    FilterRegistration.Dynamic loggerFilter =
            container.addFilter("loggerFilter",new LoggerFilter());
    loggerFilter.addMappingForUrlPatterns(null,"/api/*");
    loggerFilter.addMappingForUrlPatterns(null,"/html/*");
  }
}

Is there anything obvious that I'm missing? I have checked all other questions / answers on this subject and have not found a solution

Solution

Set the answer so that others know to help me in this special situation Turning on spring logging allows me to see that the database connection is pending Solving database problems enables my application to complete deployment

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>