从网上找了个Spring MVC框架系统,部署到Eclipse后准备启动,当Web.xml里面不配做context,Servlet,filter的时候,系统可以正常启动,但当配置了context,Servlet,filter的时候,系统无法正常启动,出现的错误信息为:
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webmvc]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/webmvc]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
... 6 more
Caused by: java.lang.NullPointerException
at web.config.CommonInitializer.onStartup(CommonInitializer.java:54)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5292)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 6 more
七月 08, 2016 10:45:26 上午 org.apache.catalina.core.ContainerBase startInternal
严重: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:915)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 6 more
七月 08, 2016 10:45:26 上午 org.apache.catalina.startup.Catalina start
严重: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:787)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:153)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:441)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
... 11 more
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["http-nio-8080"]
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol pause
信息: Pausing ProtocolHandler ["ajp-nio-8009"]
七月 08, 2016 10:45:26 上午 org.apache.catalina.core.StandardService stopInternal
信息: Stopping service Catalina
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["http-nio-8080"]
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy
严重: Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy
信息: Destroying ProtocolHandler ["ajp-nio-8009"]
七月 08, 2016 10:45:26 上午 org.apache.coyote.AbstractProtocol destroy
严重: Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]
java.lang.NullPointerException
at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:316)
at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:492)
at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:821)
at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:534)
at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1023)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:589)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:877)
at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:297)
at org.apache.catalina.startup.Catalina.start(Catalina.java:633)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
其中,比较常见的错误语句为:
A child container failed during start
Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xxx]]
Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]
将错误信息分别去网上查询,根本别人的经验均无法解决。
于是分析每一条错误信息,web.config.CommonInitializer.onStartup(CommonInitializer.java:54),忽然想到,会不会是该配置信息已经在系统中定义一次了。从系统中查找CommonInitializer.java,豁然开朗,果然如此。
Servlet3.0规范,支持将web.xml相关配置也硬编码到代码中[servlet,filter,listener,等等],并由javax.servlet.ServletContainerInitializer的实现类负责在容器启动时进行加载。
于是试着将硬编码加载配置的类去掉,果然可以正常启动并访问了。
硬编码加载时,实现的接口
WebApplicationInitializer
相关推荐
同时,还需要在启动Tomcat时传递参数以启用jreloader,例如: ```bash java -jar start.jar reload=true ``` 在实际应用中,为了更好地利用jreloader,我们还需要注意以下几点: 1. 只有Java类文件的更改会被...
- 启动Tomcat:运行Tomcat的`bin/startup.sh`(Linux或Mac)或`startup.bat`(Windows)脚本,启动服务器。 - 自动解压并部署:Tomcat会自动检测到`webapps`目录下的WAR文件,并在后台将其解压成一个与WAR文件名...
1. **启动服务器**:确保你的 Web 服务器(如 Tomcat)已正确配置并启动。 2. **访问应用**:通过浏览器访问 `http://localhost:8080/hello`,你应该能看到 "Hello, Spring MVC!" 的响应。 ### 五、深入理解 1. **...
**SpringMVC框架** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-控制器(MVC)设计模式的Web应用框架。主要功能包括: 1. **请求分发器**:DispatcherServlet是SpringMVC的核心,它负责接收HTTP请求,并...
SpringMVC作为Spring框架的一部分,是用于构建Web应用程序的控制器层。在SpringMVC4版本中,引入了“零配置”概念,旨在简化开发流程,提高开发效率。本文将深入探讨SpringMVC4的零配置特性,以及如何在实际项目中...
"注意设置tomcat的modules的path为“/”"这部分提示我们在部署应用时,需要配置Tomcat服务器,确保WebSocket路径正确。通常,WebSocket的URL是以ws://或wss://开头,后跟服务器地址和端口,以及特定的路径。在本例中...
在本项目中,"springboot+springMVC练习项目"是一个综合性的开发实践,它结合了Spring Boot和Spring MVC这两个核心的Java框架。Spring Boot以其快速启动和简化配置的特性,已经成为现代Java应用开发的首选框架,而...
- 错误处理:需要处理可能的异常,确保系统在遇到问题时能优雅地关闭。 - 性能优化:根据具体需求调整Netty的线程池大小,以及缓冲区配置等。 8. **总结** 将Spring MVC与Netty结合,可以充分利用Netty的性能...
然后,使用Maven的`mvn clean install`命令来构建项目,`mvn jetty:run`或`mvn tomcat7:run`启动服务器。访问`http://localhost:8080/login`,就可以看到登录表单了。 这个简单的登录工程展示了Spring MVC和Maven...
在IT行业中,EasyUI和SpringMVC是两个非常重要的技术框架,它们在Web应用开发中发挥着关键作用。本文将详细解析这两个框架的使用及其在实际开发中的常见问题。 EasyUI是一个基于jQuery的轻量级前端框架,它提供了一...
SpringBoot应用部署到Tomcat中无法启动的解决方法是指在使用SpringBoot框架开发Web应用时,将其部署到Tomcat服务器中却无法启动的解决方案。本文将详细介绍解决该问题的方法。 背景 SpringBoot框架自带Servlet容器...
《SpringMVC_Book_SpringMVCHibernate.zip》是一个包含基于Spring、SpringMVC和Hibernate三大框架构建的图书管理系统的压缩文件。这个项目旨在展示如何有效地整合这些技术,以实现一个功能完善的后端系统。接下来,...
1. 自动配置:SpringBoot通过`@EnableWebMvc`注解启动SpringMVC,同时使用`WebMvcAutoConfiguration`类进行自动配置。 2. 没有web.xml:SpringBoot摒弃了传统的Servlet容器配置文件web.xml,而是使用Java配置或YAML/...
- **启动服务器**:运行Tomcat,部署项目。 - **访问登录页面**:在浏览器中输入`localhost/lakey_manage.h`,加载登录页面,输入测试用户信息。 - **测试登录功能**:提交表单后,观察服务器日志和页面反馈,确认...
在将传统的SpringMVC项目迁移到IntelliJ IDEA(以下简称IDEA)时,开发者经常会遇到各种挑战,因为这个过程涉及到多个步骤,而网上找到的教程往往不够全面。本指南将详细阐述这一流程,确保你能成功地将现有项目导入...
在Web应用中,文件上传是一项常见的功能,SpringMVC作为Spring框架的一部分,提供了一种方便、灵活的方式来实现这个功能。本文将深入探讨如何利用SpringMVC实现基于Java的文件上传功能,以及在eclipse开发环境中,...
在SpringMVC框架中,文件上传是一个常见的功能,它允许用户通过Web应用程序上传文件到服务器。Eclipse作为Java开发的主流IDE,提供了便捷的环境来配置和运行SpringMVC项目。下面将详细介绍如何在Eclipse中实现...
综上所述,SpringMVC精品资源--vans项目是一个基于SpringBoot的高效后端开发框架,它融合了SpringMVC的强大功能,为开发者提供了一个便捷的开发平台。通过对"ahao5"文件的深入学习,可以掌握项目结构,理解SpringMVC...
- **强大的错误处理机制**:SpringMVC提供了一整套错误处理机制,帮助开发者轻松应对异常情况。 #### 二、HelloWorld示例 1. **开发环境设置** - **IDE**:IntelliJ IDEA 2019.2 - **构建工具**:Maven 3.5.4 ...
在构建基于SpringMVC+Hibernate的Web应用程序时,我们需要理解这两个关键框架的工作原理以及它们如何协同工作。SpringMVC作为Spring框架的一部分,主要用于处理HTTP请求并分发到相应的控制器,而Hibernate则是一个...