我面临的问题,当我通过命令行运行我的Spring Boot 应用程序
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev -Dserver.port=8083"
这工作正常,但运行作为应用程序在intellij我得到下面的错误-
Application run failed,
exc.stack=org.springframework.context.ApplicationContextException:
Unable to start web server; nested exception is org.springframework.context.ApplicationContextException:
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.\n\tat org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:155)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389)\n\tat org.springframework.boot.SpringApplication.run(SpringApplication.java:311)
可能的原因是什么,我应该在哪里查看配置修复?
关于这个图案还有其他问题,但都没有提到错误-
Spring Boot application runs fine via Maven but not via IDE Intellij IDEA
ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean(对于缺少servlet bean,但如果是这种情况,则应用程序也不应该通过命令行启动)
所以,我找不到答案。
2条答案
按热度按时间hmtdttj41#
当您将Tomcat的依赖范围设置为“已提供”时,可能会发生此错误,但在运行应用程序时,您没有选择“包含具有已提供范围的依赖关系”选项。
您可以在应用的运行配置下选择该选项。
在一些旧版本的IntelliJ中,您可能会看到一个复选框来启用相同的功能。
luaexgnf2#
添加到@Ankit Raj在IntelliJ Idea 2022.3.1中提供的答案。
这里的选项是
Add dependencies with "provided" scope to classpath
如