Spring boot SpringBoot:作为Java应用程序运行,但类路径包含SpringWeb

Spring boot SpringBoot:作为Java应用程序运行,但类路径包含SpringWeb,spring-boot,Spring Boot,我成功地创建了一个Spring引导应用程序,它作为Java应用程序运行,如下所示: @SpringBootApplication public class Application { public static void main(String[] args) throws Exception { SpringApplication springApplication = new SpringApplication(); springApplication.setWebEnvi

我成功地创建了一个Spring引导应用程序,它作为Java应用程序运行,如下所示:

@SpringBootApplication
public class Application {

public static void main(String[] args) throws Exception {
    SpringApplication springApplication = new SpringApplication();
    springApplication.setWebEnvironment(false);
    springApplication.run(Application.class, args);
}
问题是我的应用程序需要
springweb
模块,因为它是REST服务的客户端

添加
SpringWeb
模块后,我收到一个错误:

Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
如何让它作为Java应用程序运行,并在类路径上运行
SpringWeb

我有与您“相同的设置”-命令行SpringBoot应用程序使用
SpringWeb
中的
RestTemplate
,一切正常。也许只是因为我使用了“完整”的SpringWebStarter

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

你试过这个吗?应该有用。也许你需要1.3分的时间this@Marged是的,我看到了,上面看到了我的代码片段抱歉,没有看到设置app.run(args)是这里的关键,它包含了我的Application.class,它创建了一个默认配置并忽略了我的设置,因此通过排除它现在作为Java进程运行。谢谢嗯,我没想到会有这么简单的问题->以非静态方式调用静态方法。您的had IDE可能警告过您:)但很高兴它现在可以工作了。这不是一个静态方法,虽然还有另一个静态run()方法,但我没有使用它。在版本1.3.1中,SpringApplication只有3个
run
方法,但只有一个-
run(String…
是非静态的。但这只是细节:)
    SpringApplication app = new SpringApplication(MyApplication.class);
    app.setWebEnvironment(false);
    app.run(args);