`

SpringMVC框架,启动Tomcat时的错误,无法启动

 
阅读更多

从网上找了个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

分享到:
评论

相关推荐

    springMVC样例、jreloader实现tomcat热部署

    同时,还需要在启动Tomcat时传递参数以启用jreloader,例如: ```bash java -jar start.jar reload=true ``` 在实际应用中,为了更好地利用jreloader,我们还需要注意以下几点: 1. 只有Java类文件的更改会被...

    Tomcat 部署 war 源文件 springmvc_war.zip

    - 启动Tomcat:运行Tomcat的`bin/startup.sh`(Linux或Mac)或`startup.bat`(Windows)脚本,启动服务器。 - 自动解压并部署:Tomcat会自动检测到`webapps`目录下的WAR文件,并在后台将其解压成一个与WAR文件名...

    springmvc-helloworld

    1. **启动服务器**:确保你的 Web 服务器(如 Tomcat)已正确配置并启动。 2. **访问应用**:通过浏览器访问 `http://localhost:8080/hello`,你应该能看到 "Hello, Spring MVC!" 的响应。 ### 五、深入理解 1. **...

    springMVC+mybatis的示例项目

    **SpringMVC框架** SpringMVC是Spring框架的一部分,它是一个基于模型-视图-控制器(MVC)设计模式的Web应用框架。主要功能包括: 1. **请求分发器**:DispatcherServlet是SpringMVC的核心,它负责接收HTTP请求,并...

    SpringMVC4零配置

    SpringMVC作为Spring框架的一部分,是用于构建Web应用程序的控制器层。在SpringMVC4版本中,引入了“零配置”概念,旨在简化开发流程,提高开发效率。本文将深入探讨SpringMVC4的零配置特性,以及如何在实际项目中...

    springMvc-websocket-demo

    "注意设置tomcat的modules的path为“/”"这部分提示我们在部署应用时,需要配置Tomcat服务器,确保WebSocket路径正确。通常,WebSocket的URL是以ws://或wss://开头,后跟服务器地址和端口,以及特定的路径。在本例中...

    springboot+springMVC练习项目

    在本项目中,"springboot+springMVC练习项目"是一个综合性的开发实践,它结合了Spring Boot和Spring MVC这两个核心的Java框架。Spring Boot以其快速启动和简化配置的特性,已经成为现代Java应用开发的首选框架,而...

    spring mvc中启动netty

    - 错误处理:需要处理可能的异常,确保系统在遇到问题时能优雅地关闭。 - 性能优化:根据具体需求调整Netty的线程池大小,以及缓冲区配置等。 8. **总结** 将Spring MVC与Netty结合,可以充分利用Netty的性能...

    springmvc简单登录工程

    然后,使用Maven的`mvn clean install`命令来构建项目,`mvn jetty:run`或`mvn tomcat7:run`启动服务器。访问`http://localhost:8080/login`,就可以看到登录表单了。 这个简单的登录工程展示了Spring MVC和Maven...

    easyui以及Springmvc使用笔记

    在IT行业中,EasyUI和SpringMVC是两个非常重要的技术框架,它们在Web应用开发中发挥着关键作用。本文将详细解析这两个框架的使用及其在实际开发中的常见问题。 EasyUI是一个基于jQuery的轻量级前端框架,它提供了一...

    SpringBoot应用部署到Tomcat中无法启动的解决方法

    SpringBoot应用部署到Tomcat中无法启动的解决方法是指在使用SpringBoot框架开发Web应用时,将其部署到Tomcat服务器中却无法启动的解决方案。本文将详细介绍解决该问题的方法。 背景 SpringBoot框架自带Servlet容器...

    SpringMVC_Book_SpringMVCHibernate.zip_hibernate_spring_springmvc

    《SpringMVC_Book_SpringMVCHibernate.zip》是一个包含基于Spring、SpringMVC和Hibernate三大框架构建的图书管理系统的压缩文件。这个项目旨在展示如何有效地整合这些技术,以实现一个功能完善的后端系统。接下来,...

    springboot-integaration-springmvc.rar

    1. 自动配置:SpringBoot通过`@EnableWebMvc`注解启动SpringMVC,同时使用`WebMvcAutoConfiguration`类进行自动配置。 2. 没有web.xml:SpringBoot摒弃了传统的Servlet容器配置文件web.xml,而是使用Java配置或YAML/...

    SpringMVC4+Hibernate4集成

    - **启动服务器**:运行Tomcat,部署项目。 - **访问登录页面**:在浏览器中输入`localhost/lakey_manage.h`,加载登录页面,输入测试用户信息。 - **测试登录功能**:提交表单后,观察服务器日志和页面反馈,确认...

    传统SpringMVC移入IDEA 操作指南.docx

    在将传统的SpringMVC项目迁移到IntelliJ IDEA(以下简称IDEA)时,开发者经常会遇到各种挑战,因为这个过程涉及到多个步骤,而网上找到的教程往往不够全面。本指南将详细阐述这一流程,确保你能成功地将现有项目导入...

    基于springMVC的文件上传功能

    在Web应用中,文件上传是一项常见的功能,SpringMVC作为Spring框架的一部分,提供了一种方便、灵活的方式来实现这个功能。本文将深入探讨如何利用SpringMVC实现基于Java的文件上传功能,以及在eclipse开发环境中,...

    springmvc文件上传

    在SpringMVC框架中,文件上传是一个常见的功能,它允许用户通过Web应用程序上传文件到服务器。Eclipse作为Java开发的主流IDE,提供了便捷的环境来配置和运行SpringMVC项目。下面将详细介绍如何在Eclipse中实现...

    SpringMVC精品资源--vans 基于SpringBoot构建的后端开发脚手架项目,完美整合springmvc.zip

    综上所述,SpringMVC精品资源--vans项目是一个基于SpringBoot的高效后端开发框架,它融合了SpringMVC的强大功能,为开发者提供了一个便捷的开发平台。通过对"ahao5"文件的深入学习,可以掌握项目结构,理解SpringMVC...

    SpringMVC笔记

    - **强大的错误处理机制**:SpringMVC提供了一整套错误处理机制,帮助开发者轻松应对异常情况。 #### 二、HelloWorld示例 1. **开发环境设置** - **IDE**:IntelliJ IDEA 2019.2 - **构建工具**:Maven 3.5.4 ...

    基于springMvc+hibernate的web application的构建

    在构建基于SpringMVC+Hibernate的Web应用程序时,我们需要理解这两个关键框架的工作原理以及它们如何协同工作。SpringMVC作为Spring框架的一部分,主要用于处理HTTP请求并分发到相应的控制器,而Hibernate则是一个...

Global site tag (gtag.js) - Google Analytics