您的位置:首页 > 移动开发 > WebAPP

Idea 启动Sringboot 报错 Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletCont

2017-11-28 10:42 696 查看
问题:

idea 启动项目的时候报错(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.),

原因:

主要是以下的依赖 
 

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>${springboot-version}</version>
<scope>provided</scope>
</dependency>

由于打包是不需要tomcat的,所以这里把tomcat的依赖改为provided,那么问题来了,由于idea存在一个bug,就是provided的pom不会加入classpath中,所以运行的时候就找不到tomcat相关的包,

参考:

所以这里需要两种解决办法,具体参考以下的文章http://blog.csdn.net/neosmith/article/details/50924681

解决:

在 Intellij Idea 15 中使用maven时,所有 scope 为 
provided
 的依赖都是不会被加入到 classpath 中的,目前该bug尚未被修复(bug
report)。如果你的web应用是部署到容器中的,那么这个bug不会影响使用,因为web应用中
provided
的依赖在容器运行时会被提供。如果你做Spring Boot开发,有带
provided
的依赖时,直接在IDE中运行项目会导致
ClassNotFound
异常。解决方案有二:
使用
spring-boot:run
这个 maven goal 运行程序。但这样会失去 Idea 的 debug功能,不推荐。
点击IDE右侧的
Maven Projects
, 找到
spring-boot:run
,右键选择
debug 运行,如图: 



tips:
如何调出Maven Projects

方法1.你点击一下你idea界面最左下角的那个小框,maven应该从里面找到

方法2.点击菜单栏View->Tool  Windows->Maven projects 

方法3.点击菜单栏Help->Find Action(Ctrl+Shift+A),输入Maven projects
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  idea springboot
相关文章推荐