Springboot application启动missing EmbeddedServletContainerFactory错误解决
Posted On 2021年7月20日
前几天有同学IDE启动Springboot Application main方法时,提示Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean。 代码肯定是没有问题的,为什么同样会的代码我本地可以执行,他启动时却报上面的错误了呢。
因为我们本地启动Springboot 应用,需要用到内建的tomcat容器。 pom.xml 配置如下, scope 为provided。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
Intellij IDEA 并不会默认将 provided的依赖库加入到运行的classpath中,所以就会导致启动时无法找到EmbeddedWebApplicationContext, 以至于启动失败。
如何设置Intellij IDEA默认把provided 的依赖库加入到class path中呢, 选中你要执行的Application的java文件(main方法所在的class),右键 -> Modify run configuration 。 弹出一个窗口。 右上角有个蓝色的 Modify options 链接,点击后勾选 include dependencies with “provided” scope。 操作之后,我们再进行启动Springboot application, 就成功了。
当然如果不是上面的IDE设置的问题,那么大概率就是你的代码问题。 需要检查你的application主方法的类是否设置了springboot的一些必要的配置注解。
此篇文章已被阅读844 次