应用程序通过Sping Boot 运行,但不通过IntelliJ Idea运行

dpiehjr4  于 2023-05-06  发布在  IntelliJ IDEA
关注(0)|答案(2)|浏览(177)

我面临的问题,当我通过命令行运行我的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,但如果是这种情况,则应用程序也不应该通过命令行启动)
所以,我找不到答案。

hmtdttj4

hmtdttj41#

当您将Tomcat的依赖范围设置为“已提供”时,可能会发生此错误,但在运行应用程序时,您没有选择“包含具有已提供范围的依赖关系”选项。
您可以在应用的运行配置下选择该选项。
在一些旧版本的IntelliJ中,您可能会看到一个复选框来启用相同的功能。

luaexgnf

luaexgnf2#

添加到@Ankit Raj在IntelliJ Idea 2022.3.1中提供的答案。
这里的选项是Add dependencies with "provided" scope to classpath

相关问题