Spring Boot 2.0 Web应用程序将不会启动嵌入式Servlet容器

时间:2018-10-04 15:07:00

标签: java spring spring-boot

我已经将可以正常工作的Spring Boot 1.4 Web应用程序升级到2.0.5,我遵循了迁移指南并解决了各种编译器错误。通过IntelliJ运行应用程序时,我现在只能得到

below

尝试通过调试输出运行,没有其他

似乎没有启动嵌入式servlet容器,因此在查看Spring 2.0的更改日志后,我在配置中添加了以下内容

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.5.RELEASE)


Process finished with exit code 0

继续阅读并检查

spring.main.web-application-type=servlet

在我的build.grade中。它也作为依赖项进入

compile('org.springframework.boot:spring-boot-starter-web')

然后我尝试创建并使用一个简单的测试Main class

spring-boot-starter-tomcat

但仍然是“退出代码0”。

在使用上述类时,我还尝试从application.properties中删除所有内容。

考虑到没有错误,我不确定从这里去哪里。

1 个答案:

答案 0 :(得分:2)

有两种方法可以修复此问题。

方法1:

@SpringBootApplication
public class TestApp {

    @GetMapping("/")
    String home() {
        return "Hello World!";
    }

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

}

方法2

步骤1:您的主类将只有main方法:

@SpringBootApplication
public class TestApp {


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

}

第2步:创建TestController并将您的方法放在此处,如下所示:

@RestController
public class TestController {

    @GetMapping("/")
    String home() {
        return "Hello World!";
    }

}