p>前天还没问题,今天启动突然就报这个错。重新从coding下载代码迟迟未能解决。服务器上却可以正常启动。什么鬼?报错如下:
. ____ _ __ _ _ /\ / ' __ _ () __ __ _ \ \ \
( ( )__ | '_ | '| | ' / ` | \ \ \
\/ __)| |)| | | | | || (| | ) ) ) ) ' || .__|| ||| |_, | / / / / =========||==============|/=//// :: Spring Boot :: (v1.5.8.RELEASE)
2018-05-21 12:10:01.224 INFO 8456 --- [ main] enroll.root.EnrollApplication : Starting EnrollApplication on DEEP-1711281215 with PID 8456 (G:\03\enroll_list\target\classes started by Administrator in G:\03\enroll_list) 2018-05-21 12:10:01.227 INFO 8456 --- [ main] enroll.root.EnrollApplication : No active profile set, falling back to default profiles: default 2018-05-21 12:10:01.549 INFO 8456 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@365c30cc: startup date [Mon May 21 12:10:01 CST 2018]; root of context hierarchy 2018-05-21 12:10:02.752 WARN 8456 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. 2018-05-21 12:10:02.759 INFO 8456 --- [ main] utoConfigurationReportLoggingInitializer :
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled. 2018-05-21 12:10:02.766 ERROR 8456 --- [ main] o.s.boot.SpringApplication : Application startup failed
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at enroll.root.EnrollApplication.main(EnrollApplication.java:16) [classes/:na] Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.getEmbeddedServletContainerFactory(EmbeddedWebApplicationContext.java:189) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:162) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] ... 8 common frames omitted
启动类能加的我都加了,@EnableAutoConfiguration之前没加一样能启动,查询各种网站说加上这个即可。但无效。
package enroll.root;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("enroll.root.mapper")
@EnableAutoConfiguration
@SpringBootApplication
public class EnrollApplication {
public static void main(String[] args) {
SpringApplication.run(EnrollApplication.class, args);
}
}
缺包!
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>XXX</version>
</dependency>
######
缺包!
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>XXX</version>
</dependency>
这个我有的
不过不是你这样的写法
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
以上这种写法之前一直都可启动
######我现在只是奇怪,前天还能启动,为什么今天就不行了。什么都没变过######你确定 tomcat-servlet-api 包含了所需要的 包了。你进去 spring-boot-tomcat 里面应该还有其他的吧######我怀疑是这个'<scope>pprovided</scope>的值,在eclipse往IDEA里迁移的时候,容器的scope需要住改成compile######我把移除内嵌tomcat去掉重新加了个spring-boot-tomcat就可以启动了,真的很奇怪,pom.xml这样在测试服可以用,本地就挂,周五还能正常启动。。真的灵异事件了,我这样配置半年了项目都没问题。######这很明显是错误的 这样配置只能编译不能直接运行 要部署到tomcat中 现在的依赖只有servlet api没有真正的容器 不应该排除tomcat依赖
######我把移除内嵌tomcat去掉重新加了个spring-boot-tomcat就可以启动了,真的很奇怪,pom.xml这样在测试服可以用,本地就挂,周五还能正常启动。。真的灵异事件了。谢谢你了######这很明显是错误的 这样配置只能编译不能直接运行 要部署到tomcat中 现在的依赖只有servlet api没有真正的容器 不应该排除tomcat依赖
你移除Tomcat依赖,是因为它默认使用Jetty呀。
######我今天也遇到了,公司电脑能正常跑,别人拉拉我的git运行就出了问题。
Caused by: org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
看你这边的解答,然后去试了一下
IDEA注释掉之后记得要 点下右下角的 import Changes然后运行才能生效
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!--<scope>provided</scope>--> </dependency>
确实可以了问题解决 完美
######正解,这个可以理解为IDEA 的小bug,在myeclipe环境下没有问题。
######本地开发,注释掉<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>这个就好了,
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。