web-dev-qa-db-ja.com

Eclipse TomcatでSpring Bootアプリを実行するにはどうすればよいですか?

Springブートアプリケーションがあり、これをEclipse内のサーバーアプリケーションとして実行したい。したがって、アプリはTomcat Webアプリとして認識され、ファセットを更新して追加できます。

enter image description here

Webアプリを実行すると、残りのサービスが見つかりません。 Spring Bootアプリには、Spring Bootがリリースされる前のSpringアプリとは異なるフォルダー構造が含まれています。 Springブートアプリは、Eclipse構成のTomcatから実行できますか?また、スプリングブートの前に、アプリのコントローラーセクションを指定する必要があります。 Eclipse Tomcatから実行するために、Spring Bootアプリをこれらの設定で更新する必要がありますか?

Warを作成して、Tomcatのwebappsフォルダーにコピーしたくありません。

更新:Eclipse Tomcatコンテナー内でこのアプリを実行する理由は、新しいスプリングブートアプリが依存する他の非スプリングブートアプリケーションがあるためです。

7
blue-sky

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);
    }
}

次に、(既に行ったように)プロジェクトファセットを構成します。

  • 動的Webモジュール
  • Java
  • Javascript

次に、展開アセンブリを確認します。 enter image description here

できた!

17
leo

簡潔な答え

  • gradleプラグインを使用:Eclipse-wtpおよびwar
  • SpringBootServletInitializerApplicationを拡張

説明:

Tomcatでスプリングブートアプリケーションを実行するには、通常、生成されるアーティファクトはwarアプリケーションでなければなりません。

Eclipse内のTomcatで実行するには、Eclipse-wtp gradleプラグインを使用して、WTPプロジェクト(Web Tools Platform別名Dynamic Web Module)を使用する必要があります。

Tomcatの起動時にSpring Bootアプリケーションコンテキストを起動するには、SpringBootServletInitializerを拡張する必要があります。

テストプロジェクトを作成する方法

Springは Getting Started Tutorial 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サーバーにサンプルプロジェクトをデプロイし、サーバーを起動できました。 URLは次のとおりです: http:// localhost:8080/complete/greeting?name = User

完全なサンプル を確認してください。

2
andy

この2つの簡単な手順に従ってください。

手順1. pom.xmlファイルで、パッケージ形式をjarではなくwarに変更します。

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

ステップ2.プロジェクトを右クリックして、Maven-> update projectを実行します。

この手順を実行した後、プロジェクトを実行しようとすると、「サーバーで実行」するオプションが見つかります。

0

この注釈を春のブーツのメインクラスに追加するだけです。

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

依存関係をpom.xmlファイルに追加します。

0
Sai Goud

「Deployment Assembly」オプションが表示されない場合は、以下の性質を.projectファイルに追加すると、Deployment Assemblyオプションが有効になります。

org.Eclipse.wst.common.modulecore.ModuleCoreNature

プロジェクトのパッキング構造を定義した後、webappsディレクトリのwarファイルを手動でコピーしなくても、Tomcatサーバーでアプリケーションを実行できます。

0
asardana