如何在 Eclipse tomcat 中运行 spring boot 应用程序?

新手上路,请多包涵

我有一个 Spring Boot 应用程序,想在 Eclipse 中将其作为服务器应用程序运行。因此,该应用程序将被识别为 Tomcat 网络应用程序,并且可以添加我更新方面:

在此处输入图像描述

当我运行网络应用程序时,我的休息服务没有被发现。 Spring Boot 应用程序包含的文件夹结构与 Spring Boot 发布之前的 Spring 应用程序不同。可以从配置为 eclipse 的 tomcat 运行 spring boot 应用程序吗?同样在 spring boot 之前,需要指定应用程序的控制器部分。我是否需要使用这些设置更新我的 spring boot 应用程序才能从 Eclipse tomcat 运行?

我不想创建一场战争,然后将其复制到 tomcat 的 webapps 文件夹中。

更新:在 Eclipse tomcat 容器中运行此应用程序的原因是我有其他非 spring boot 应用程序,我的新 spring boot 应用程序将依赖这些应用程序。

原文由 blue-sky 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 994
2 个回答

检查你的 pom.xml:

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

然后检查您的主要应用程序类:

 @SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

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

然后配置 Project Facets(就像你已经做的那样):

  • 动态网络模块
  • 爪哇
  • Javascript

然后检查您的部署程序集: 在此处输入图像描述

完毕!

原文由 leo 发布,翻译遵循 CC BY-SA 3.0 许可协议

简答

  • 使用gradle插件: eclipse-wtpwar
  • 扩展 SpringBootServletInitializerApplication

解释:

为了在 tomcat 上运行 spring boot 应用程序,通常生成的工件必须是 war 应用程序。

为了使其在 Eclipse 内的 tomcat 上运行,您必须使用 WTP 项目(Web 工具平台又名动态 Web 模块),使用 eclipse-wtp gradle 插件。

SpringBootServletInitializer 必须扩展,以便在启动 Tomcat 时启动 Spring Boot 应用程序上下文。

如何创建测试项目

Spring 提供了如何使用 Spring Boot 构建 REST web 服务的 入门教程。我增强了项目以使用 Tomcat 和 Eclipse:

查看

示例项目:

 git clone https://github.com/spring-guides/gs-rest-service.git

导入eclipse

导入 complete/ 子文件夹作为 gradle 项目。

改变 build.gradle

消除

apply plugin: 'java'
apply plugin: 'eclipse'

添加

apply plugin: 'war'
apply plugin: 'eclipse-wtp'

改变 src/main/java/hello/Application.java

添加扩展名 SpringBootServletInitializer

 public class Application extends SpringBootServletInitializer {
    ...
}

完成后,我可以将示例项目部署到在 eclipse 中配置的 Tomcat 服务器并启动服务器。网址是: http://localhost:8080/complete/greeting?name=User

查看 完整样本

原文由 andy 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题