Springブートアプリケーションがあり、これをEclipse内のサーバーアプリケーションとして実行したい。したがって、アプリはTomcat Webアプリとして認識され、ファセットを更新して追加できます。
Webアプリを実行すると、残りのサービスが見つかりません。 Spring Bootアプリには、Spring Bootがリリースされる前のSpringアプリとは異なるフォルダー構造が含まれています。 Springブートアプリは、Eclipse構成のTomcatから実行できますか?また、スプリングブートの前に、アプリのコントローラーセクションを指定する必要があります。 Eclipse Tomcatから実行するために、Spring Bootアプリをこれらの設定で更新する必要がありますか?
Warを作成して、Tomcatのwebappsフォルダーにコピーしたくありません。
更新:Eclipse Tomcatコンテナー内でこのアプリを実行する理由は、新しいスプリングブートアプリが依存する他の非スプリングブートアプリケーションがあるためです。
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);
}
}
次に、(既に行ったように)プロジェクトファセットを構成します。
できた!
Eclipse-wtp
およびwar
SpringBootServletInitializer
のApplication
を拡張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
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つの簡単な手順に従ってください。
手順1. pom.xmlファイルで、パッケージ形式をjarではなくwarに変更します。
**<packaging>war</packaging>**
ステップ2.プロジェクトを右クリックして、Maven-> update projectを実行します。
この手順を実行した後、プロジェクトを実行しようとすると、「サーバーで実行」するオプションが見つかります。
この注釈を春のブーツのメインクラスに追加するだけです。
@SpringBootApplication
@Configuration
@ComponentScan(value={"packages name to scan"})
依存関係をpom.xml
ファイルに追加します。
「Deployment Assembly」オプションが表示されない場合は、以下の性質を.projectファイルに追加すると、Deployment Assemblyオプションが有効になります。
org.Eclipse.wst.common.modulecore.ModuleCoreNature
プロジェクトのパッキング構造を定義した後、webappsディレクトリのwarファイルを手動でコピーしなくても、Tomcatサーバーでアプリケーションを実行できます。