解决Spring boot 嵌入的tomcat不启动问题

 更新时间:2020年10月10日 16:14:21   作者:黄卷青灯957  
这篇文章主要介绍了解决Spring boot 嵌入的tomcat不启动问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

此文章记录一次spring boot通过main 方法启动无法成功的问题

Unregistering JMX-exposed beans on shutdown

问题如下,因为已经解决用的别人的截图但是效果是一样的

百度了一圈都说tomcat没有配置,但实际xml有如下配置

 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-tomcat</artifactId>
 </dependency>

问题:eclipse maven自动下jar包时下载的不全,有部分文件丢失,但是控制台并没有发出任何 classNotFound提示

解决:C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed

讲该目录下的所有文件删除,然后右键项目maven-> update project,

其他同类发现classNotFound也可以通过寻找对应jar包在本地仓库位置,使用相同操作进行解决

补充知识:springboot 设置web和非web启动

springBoot区分web和非web项目

老版本:

#server config
#web_environment是否是web项目
spring.main.web_environment=true
#是否加载springboot banner
spring.main.show_banner=false

现版本:

#server config
#是否设定web应用,none-非web,servlet-web应用
spring.main.web-application-type=servlet
#加载springboot banner的方式:off-关闭,console-控制台,log-日志
spring.main.banner-mode=off

WebApplicationType原理:

public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {
 this.resourceLoader = resourceLoader;
 Assert.notNull(primarySources, "PrimarySources must not be null");
 this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources));
 this.webApplicationType = deduceWebApplicationType();
 setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
 setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
 this.mainApplicationClass = deduceMainApplicationClass();
}

deduceWebApplicationType()推断当前环境是哪种Web环境(Servlet、Reactive),或者不是Web环境,判断逻辑为Classpath是够有以下类:

存在org.springframework.web.reactive.DispatcherHandler且不存在org.springframework.web.servlet.DispatcherServlet为WebApplicationType.REACTIVE;

同时存在javax.servlet.Servlet、org.springframework.web.context.ConfigurableWebApplicationContext 为WebApplicationType.SERVLET;

否则为 WebApplicationType.NONE

在这里this.webApplicationType = WebApplicationType.SERVLET;

所谓的banner就是控制台打印的一堆线组成的spring

以上这篇解决Spring boot 嵌入的tomcat不启动问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • springboot下实现RedisTemplate List 清空

    springboot下实现RedisTemplate List 清空

    我们经常会使用Redis的List数据结构来存储一系列的元素,当我们需要清空一个List时,可以使用RedisTemplate来实现,本文就来详细的介绍一下如何实现,感兴趣的可以了解一下
    2024-01-01
  • Java面试题冲刺第二十七天--JVM2

    Java面试题冲刺第二十七天--JVM2

    这篇文章主要为大家分享了最有价值的三道关于JVM的面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 详解Spring简单容器中的Bean基本加载过程

    详解Spring简单容器中的Bean基本加载过程

    本篇将对定义在 XMl 文件中的 bean,从静态的的定义到变成可以使用的对象的过程,即 bean 的加载和获取的过程进行一个整体的了解
    2017-05-05
  • hibernate测试时遇到的几个异常及解决方法汇总

    hibernate测试时遇到的几个异常及解决方法汇总

    今天小编就为大家分享一篇关于hibernate测试时遇到的几个异常及解决方法汇总,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • springboot3整合SpringSecurity实现登录校验与权限认证

    springboot3整合SpringSecurity实现登录校验与权限认证

    本文主要介绍了springboot3整合SpringSecurity实现登录校验与权限认证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • 浅谈list.removeAll()删除失败的原因及解决

    浅谈list.removeAll()删除失败的原因及解决

    这篇文章主要介绍了浅谈list.removeAll()删除失败的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Java关于后端怎么去接收Date、LocalDateTime类型的参数详解

    Java关于后端怎么去接收Date、LocalDateTime类型的参数详解

    这篇文章主要介绍了java关于后端怎么去接收Date、LocalDateTime类型的参数,文中有详细的代码流程,对我们学习或工作有一定的参考价值,需要的朋友可以参考下
    2023-06-06
  • Java Excel文件加密保护数据安全

    Java Excel文件加密保护数据安全

    这篇文章主要为大家介绍了Java Excel文件加密保护数据安全的方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • JAVA实现下载文件功能的两种方法

    JAVA实现下载文件功能的两种方法

    这篇文章主要介绍了JAVA实现下载文件功能的两种方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • Java+EasyExcel实现文件的导入导出

    Java+EasyExcel实现文件的导入导出

    在项目中我们常常需要Excel文件的导入与导出,手动输入相对有些繁琐,所以本文教大家如何在Java中轻松导入与导出Excel文件,感兴趣的可以学习一下
    2021-12-12

最新评论