Spring Boot升级到2.0.1,再次按照其官网的Quick Start做了一下上手练习,Maven构建成功,但是启动应用总是报错如下:
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
在StackOverflow论坛中发现,这个问题与“Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean”如出一辙。
因为应用很简单,所以不是技术论坛中大家常说的应用入口类缺少@SpringBootApplication标注,或者是Spring bean缺少@EnableAutoConfiguration标注等问题。
[ERROR] error reading C:\Users\hanxb\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.29\tomcat-embed-core-8.5.29.jar; invalid LOC header (bad signature)
恍然大悟,Spring Boot应用起不来是因为默认使用的嵌入式Tomcat容器无法启动。
解决的办法来了,删除Maven本地库中有错的tomcat-embed-core,再次构建下载新的tomcat-embed-core,构建错误消失,成功构建完成。
启动Spring Boot应用,问题解决。
参考链接:
https://stackoverflow.com/search?q=Unable+to+start+EmbeddedWebApplicationContext+due+to+missing+EmbeddedServletContainerFactory+bean
https://stackoverflow.com/search?q=Unable+to+start+ServletWebServerApplicationContext+due+to+missing+ServletWebServerFactory+bean