当前位置: 首页 > 知识库问答 >
问题:

SpringBoot缺少ServletWebServerFactory bean

艾心远
2023-03-14

我一直收到这个错误:

原因:org.springframework.context.ApplicationContextException:由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplication Context。

这是我的运行配置中的目标。

package mystuff;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

@SpringBootApplication(scanBasePackages = "mystuff")
public class Runner {

    public static void main(String[] args) {
        new SpringApplicationBuilder(MyApp.class).run(args);
    }

}

这是MyApp.class:

package mystuff;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyApp {

    @RequestMapping("/")
    public String index() {
        return "Hello World";
    }
}

这是我的Gradle构建文件:

plugins {
    java
    id("org.springframework.boot") version "2.2.2.RELEASE"
    id("io.spring.dependency-management") version "1.0.8.RELEASE"
}

group = "org.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    testCompile("junit", "junit", "4.12")
}

configure<JavaPluginConvention> {
    sourceCompatibility = JavaVersion.VERSION_1_8
}

MyApp.java和Runner.java都在同一个包里,“mystuff”。我在Stackoverflow上搜索了一下,但是我的配置似乎是正确的。

共有3个答案

戚兴邦
2023-03-14

在.run()之前应调用.build()方法

请尝试以下代码

new SpringApplicationBuilder(MyApp.class).build().run(args);
夏侯博
2023-03-14

在< code>Runner类中,替换

new SpringApplicationBuilder(MyApp.class).run(args);

new SpringApplicationBuilder(MyApp.class).web(WebApplicationType.SERVLET).run(args);
魏元白
2023-03-14

你能不能试着

@SpringBootApplication(scanBasePackages = "mystuff")
public class Runner {

    public static void main(String[] args) {
        SpringApplication.run(Runner.class, args);
    }

}
 类似资料:
  • 我有一个基于SpringBoot的web应用程序,它公开了一个Consor健康指示器bean 在进一步检查后,我发现了负责获取所有可用指标的下面片段(HealthEndpoint Configuration.java): 在这里设置一个断点,我看到ConsultHealthIndicator bean确实没有列在applicationContext的输出中。getBeansOfType(Healt

  • 我正面临一个与下面显示的代码的问题。下面的代码生成json,如下所示: [{“id”:123,“科目”:“英语”},{“id”:456,“科目”:“数学”}] 我们可以看到生成的JSON中缺少name标记。我不明白当我返回Student列表时,结果的json应该包含name标记,因为Student类中有一个类型为“name”的属性。请救命! 学生豆类: 命名Bean类:

  • 所以我刚刚在一个小项目中升级了SpringBoot版本,现在身份验证搞砸了。当我尝试获取身份验证令牌时,我得到一个错误: 我和邮递员玩得很开心。如果我将grant_type/pw/username从正文移到QueryParams,它就可以正常工作了。但我们不能改变这一点。那么,有没有办法找出是哪个依赖项更改导致了这种情况?我查看了升级文档(2.1-

  • 问题内容: 我可能只是弄乱了原始文件中的内容,但似乎无法调用toByteArray函数。 使用Java,proto文件是使用protoc编译的。 我在说… 并且BaseMessage被声明为… 也许我缺少东西… BaseMessage扩展了GeneratedMessage,它继承了其中toByteArray是公共的AbstractMessageLite的 toByteArray(),所以我应该能够

  • 让你了解一下我的代码:

  • 我有个问题。我想使用XSSF工作簿读取xlsx中的工作表名称。我在我的项目中添加了外部jar:poi-3.9-jar poi-ooxml-3.11.jar xmlbeans-2.4.0.jar 但它总是抛出这样一个例外: java.lang.NoClassDefFoundError:org/apache/poi/UnsupportedFileFormatException 有人知道我忘了什么吗?谢