解決Spring boot 嵌入的tomcat不啟動(dòng)問題
此文章記錄一次spring boot通過main 方法啟動(dòng)無法成功的問題
Unregistering JMX-exposed beans on shutdown
問題如下,因?yàn)橐呀?jīng)解決用的別人的截圖但是效果是一樣的
百度了一圈都說tomcat沒有配置,但實(shí)際xml有如下配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency>
問題:eclipse maven自動(dòng)下jar包時(shí)下載的不全,有部分文件丟失,但是控制臺(tái)并沒有發(fā)出任何 classNotFound提示
解決:C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed
講該目錄下的所有文件刪除,然后右鍵項(xiàng)目maven-> update project,
其他同類發(fā)現(xiàn)classNotFound也可以通過尋找對(duì)應(yīng)jar包在本地倉(cāng)庫(kù)位置,使用相同操作進(jìn)行解決
補(bǔ)充知識(shí):springboot 設(shè)置web和非web啟動(dòng)
springBoot區(qū)分web和非web項(xiàng)目
老版本:
#server config #web_environment是否是web項(xiàng)目 spring.main.web_environment=true #是否加載springboot banner spring.main.show_banner=false
現(xiàn)版本:
#server config #是否設(shè)定web應(yīng)用,none-非web,servlet-web應(yīng)用 spring.main.web-application-type=servlet #加載springboot banner的方式:off-關(guān)閉,console-控制臺(tái),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()推斷當(dāng)前環(huán)境是哪種Web環(huán)境(Servlet、Reactive),或者不是Web環(huán)境,判斷邏輯為Classpath是夠有以下類:
存在org.springframework.web.reactive.DispatcherHandler且不存在org.springframework.web.servlet.DispatcherServlet為WebApplicationType.REACTIVE;
同時(shí)存在javax.servlet.Servlet、org.springframework.web.context.ConfigurableWebApplicationContext 為WebApplicationType.SERVLET;
否則為 WebApplicationType.NONE
在這里this.webApplicationType = WebApplicationType.SERVLET;
所謂的banner就是控制臺(tái)打印的一堆線組成的spring
以上這篇解決Spring boot 嵌入的tomcat不啟動(dòng)問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot配置線程池的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot配置線程池的實(shí)現(xiàn)示例,主要包括在Spring Boot中創(chuàng)建和配置線程池,包括設(shè)置線程池的大小、隊(duì)列容量、線程名稱等參數(shù),感興趣的可以了解一下2023-09-09淺談Java中Spring Boot的優(yōu)勢(shì)
在本篇文章中小編給大家分析了Java中Spring Boot的優(yōu)勢(shì)以及相關(guān)知識(shí)點(diǎn)內(nèi)容,興趣的朋友們可以學(xué)習(xí)參考下。2018-09-09Java實(shí)現(xiàn)對(duì)象排序的兩種方式詳解
這篇文章主要介紹了Java實(shí)現(xiàn)對(duì)象排序的兩種方式詳解,在Java中經(jīng)常會(huì)涉及到對(duì)象數(shù)組的排序問題,則就提到對(duì)象之間的比較問題,今天我們就來看一下兩種不同排序方式之間的區(qū)別,需要的朋友可以參考下2023-09-09解決spring-boot-starter-web等報(bào)紅問題
這篇文章主要介紹了解決spring-boot-starter-web等報(bào)紅問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07java實(shí)現(xiàn)/創(chuàng)建線程的幾種方式小結(jié)
在JAVA中,用Thread類代表線程,所有線程對(duì)象都必須是Thread類或者Thread類子類的實(shí)例,下面這篇文章主要介紹了java實(shí)現(xiàn)/創(chuàng)建線程的幾種方式,需要的朋友可以參考下2021-08-08Java面向?qū)ο箨P(guān)鍵字extends繼承的深入講解
繼承就是使用已定義的類作為父類,新建一個(gè)類作為子類使用extends關(guān)鍵字繼承這個(gè)類,這樣就實(shí)現(xiàn)了繼承關(guān)系,這篇文章主要給大家介紹了關(guān)于Java面向?qū)ο箨P(guān)鍵字extends繼承的相關(guān)資料,需要的朋友可以參考下2021-08-08