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

来源:互联网 发布:pink ward知乎 编辑:程序博客网 时间:2024/06/07 21:05

问题:

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


阅读全文
0 0
原创粉丝点击