`
kane_xie
  • 浏览: 142916 次
社区版块
存档分类
最新评论

Spring boot内嵌的tomcat启动失败

阅读更多

根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误:

 

 

SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:188)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:801)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 6 more
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.addServlet(Ljava/lang/String;Ljavax/servlet/Servlet;)Ljavax/servlet/ServletRegistration$Dynamic;
	at org.springframework.boot.context.embedded.ServletRegistrationBean.onStartup(ServletRegistrationBean.java:156)
	at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext$1.onStartup(EmbeddedWebApplicationContext.java:219)
	at org.springframework.boot.context.embedded.tomcat.ServletContextInitializerLifecycleListener.lifecycleEvent(ServletContextInitializerLifecycleListener.java:54)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5343)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

 

 

一般碰到NoSuchMethodError,要么是没有引入dependency,要么是jar包冲突。在这里应该是servlet-api.jar有冲突。

 

用命令mvn dependency:tree查看项目所有dependencies,发现有以下依赖:

 

[INFO] | +- org.apache.hbase:hbase-server:jar:0.96.1.1-cdh5.0.2:compile
...
[INFO] | | +- org.mortbay.jetty:servlet-api-2.5:jar:6.1.14:compile
...
[INFO] | | +- org.apache.hadoop:hadoop-common:jar:2.3.0-cdh5.0.2:compile
...
[INFO] | | | +- javax.servlet:servlet-api:jar:2.5:compile
...

 

hbase-server中也有servlet-api的jar包,尝试将其移除:

 

<dependency>
	<groupId>org.apache.hbase</groupId>
	<artifactId>hbase-server</artifactId>
	<version>0.96.1.1-cdh5.0.2</version>
	<exclusions>
		<exclusion>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>servlet-api-2.5</artifactId>
		</exclusion>
		<exclusion>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
		</exclusion>
	</exclusions>
</dependency>

 

运行成功。

2
2
分享到:
评论

相关推荐

    Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动

    主要介绍了Spring Boot启动过程(四)之Spring Boot内嵌Tomcat启动的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    59-Spring Boot内嵌Tomcat配置1

    这里尤其要注意设置协议这一块,众所周知,Tomcat默认用的是BIO,在生产环境中,最差也得用NIO吧,最好是APR,那么对应的协议类如下:在实际应用的时候,可

    Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start教程详解

    主要介绍了Spring Boot启动过程(五)之Springboot内嵌Tomcat对象的start的相关资料,需要的朋友可以参考下

    Spring Boot如何优化内嵌的Tomcat示例详解

    spring boot默认web程序启用tomcat内嵌容器,监听8080端口,下面这篇文章主要给大家介绍了关于Spring Boot如何优化内嵌Tomcat的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看...

    Spring Boot实战与原理分析视频课程包含14-18

    18 Spring Boot 定制和优化内嵌的Tomcat35:14 --定制和优化Tomcat,以编码的方式设置Tomcat的各个属性值,以及Tomcat的日志配置 19 Spring Boot JDBC38:38 --多种数据源的配置、JdbcTemplate、事务的处理 20 ...

    49道Spring Boot面试题带答案(很全)

    Spring Boot是一个用于简化Spring应用程序创建和开发过程的框架。它的设计目标是通过...内嵌Servlet容器:Spring Boot的应用程序内嵌了Tomcat或Jetty等Servlet容器,使得开发人员无需单独部署和配置应用程序的容器。

    基于Spring Boot的疗养院管理系统的设计与实现.zip

    高并发支持:利用Spring Boot内嵌的Tomcat服务器,能够很好地支持并发访问,保证系统稳定运行。系统实现了疗养院的核心业务流程,包括但不限于客户资料管理、预约登记、疗养服务安排、费用计算与收取等。通过本系统...

    Spring boot整合Dubbo

    1、Spring Boot 她其实就是整合了Spring MVC和Spring减少了配置的xml用注解和application.properties代替了.xml,其次他还内嵌可tomcat可以用Main函数替代了tomcat。 2、Dubbo又阿里开发的典型的分布式处理框架 ,...

    012 Spring Boot项目在外部 Tomcat 环境下部署.pdf

    spring-boot默认提供内嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以启动。但是,有时候我们更希望 一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。spring-boot同样...

    SpringBoot2.0教程.pdf

    Spring Boot 的主要优点: 为所有 Spring开发者更快的入门 开箱即用,提供各种默认配置来简化项目配置 内嵌式容器简化 Web 项目 没有冗余代码生成和 XML 配置的要求 简言之,Spring Boot 是一个快速开发的框架,能够...

    spring-boot-features-demo:Spring Boot太棒了!

    其背后的运行机制简单来说就是,当一个Spring Boot应用启动时,在加载完核心框架类之后,会启动一个内嵌的Web容器(默认是Tomcat),然后再加载应用本身的各种配置类和Bean。也就是说不再是容器包应用,而是应用包...

    springboot学习笔记.docx

    简介:spring boot 简化了J2EE企业级开发,内嵌tomcat容易,能快速开发spring 应用程序,快速部署, 简化了集成其它应用框架的流程,是spring全家桶和一站式解决方案。 Spring Boot的核心思想就是约定大于配置 ...

    springboot基础pdf

    内嵌服务器:支持内嵌Tomcat、Jetty或Undertow等Web服务器,减少了部署的复杂性。 生产就绪特性:具备监控、度量和健康检查等功能,适合生产环境使用。 Spring Boot的开发工具: Spring Tool Suite (STS):这是...

    基于 Spring Boot 框架的人事管理系统的设计与实现 完整论文 +代码+毕设 +ppt

    本设计在技术方面采用了较前沿的技术,应用端基于 Java EE 体系中开源应用框架 Spring Boot(集成 IOC, MVC, ORM),Spring Security (安全框架),内嵌 Tomcat 服务器;前端基于 JavaScript 的渐进式框架 Vue.js;页面设计...

    完结16章SpringBoot2 仿B站高性能前端+后端项目

    2、内嵌服务器:Spring Boot 提供内嵌的 Tomcat、Jetty 和 Undertow 等 Web 服务器,使得应用程序的部署变得非常简单,开发人员只需要将应用程序打包成一个jar文件,即可在任何地方运行应用程序 3、简化依赖...

    SpringBoot如何取消内置Tomcat启动并改用外接Tomcat

    主要介绍了SpringBoot如何取消内置Tomcat启动并改用外接Tomcat,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    spring系列框架之SpringBoot框架

    内嵌的容器:Spring Boot 可以打包成一个独立的 JAR 文件,并且内置了 Tomcat、Jetty 或 Undertow 等容器,使得应用程序可以直接运行,而无需外部容器的支持。 自动化的依赖管理:Spring Boot 通过 Starter POMs ...

    基于springboot,elementui 实现私人健身与教练预约管理系统

    前端使用elementui layui vue等主流框架来实现展示; 后端使用springboot来实现逻辑; 使用mybatis来实现数据层 使用MySQL数据库实现数据存储; 使用maven进行项目管理与构建;...spring boot内嵌tomcat来创建服务;

    spring boot实战之内嵌容器tomcat配置

    本篇文章主要介绍了Spring Boot 使用内嵌的tomcat容器配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Spring Boot实战与原理分析视频课程全2020(7.16G)

    1SpringBoot概述与课程概要介绍20:33 2Spring4快速入门59:56 3Spring4扩展分析(一)35:49 ...18SpringBoot定制和优化内嵌的Tomcat--定制和优化Tomcat,以编码的方式设置Tomcat的各个属性值,以及Tomca

Global site tag (gtag.js) - Google Analytics