簡體   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