Java – Tomcat 7 suspends initialization of spring root webapplicationcontext
•
Java
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
二维码