繁体   English   中英

如何在Eclipse tomcat中运行spring boot app?

[英]How to run spring boot app in Eclipse tomcat?

我有一个Spring启动应用程序,并希望在Eclipse中将其作为服务器应用程序运行。 因此,应用程序将被识别为Tomcat Web应用程序,并且可以添加我更新构面:

在此输入图像描述

当我运行Web应用程序时,我找不到其他服务。 在春季启动发布之前,Spring启动应用程序包含与spring应用程序不同的文件夹结构。 可以从eclipse配置的tomcat运行spring boot应用程序吗? 此外,在春季启动之前,应用程序的控制器部分需要指定。 我是否需要使用这些设置更新我的spring启动应用程序才能从Eclipse tomcat运行?

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

更新:在Eclipse tomcat容器中运行此应用程序的原因是我有其他非Spring启动应用程序,我的新Spring启动应用程序将依赖它。

检查你的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>

然后检查您的主app类:

@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(就像你已经做过的那样):

  • 动态Web模块
  • Java的
  • 使用Javascript

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

完成!

简短的回答

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

说明:

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

为了使它在Eclipse中的tomcat上运行,你必须使用eclipse-wtp gradle插件使用WTP-Project(Web Tools Platform,即动态Web模块)。

必须扩展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

查看完整样本

对于那些无法看到“部署程序集”选项的人,在.project文件中添加以下属性将启用部署程序集选项。

org.eclipse.wst.common.modulecore.ModuleCoreNature

在为我的项目定义打包结构之后,我能够在Tomcat服务器上运行该应用程序,而无需手动复制webapps目录中的war文件。

只需在spring boot的主类中添加此注释即可。

@SpringBootApplication
@Configuration
@ComponentScan(value={"packages name to scan"})

pom.xml文件中添加依赖项。

按照这两个简单的步骤,你的好去!

步骤1.在pom.xml文件中将打包格式更改为war而不是jar。

     **<packaging>war</packaging>**

步骤2.右键单击您的项目,然后执行Maven - >更新项目。

执行此步骤后,您将在尝试运行项目时找到“在服务器上运行”选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM