Spring Boot – TomcatにWARファイルをデプロイします
この記事では、Spring Bootの従来のWARファイルを作成し、Tomcatサーブレットコンテナにデプロイする方法を示します。
Spring Bootで、展開用のWARを作成するには、3つの手順が必要です。
-
SpringBootServletInitializer
を拡張します -
組み込みサーブレットコンテナを提供済みとしてマークしました。
-
パッケージをwarに更新
でテスト済み
-
Spring Boot 2.1.2.RELEASE
-
Tomcat 8および9
-
メーベン3
Note
Spring Bootでは、サーバーソリューションが組み込まれた新しい最終的な実行可能JARファイルは、すべての実稼働環境、特にデプロイメントチーム(サーバーの最適化と監視のスキルに精通しているチームですが、開発経験の欠如)、サーバーの完全な制御を望んでおり、コードに触れないため、従来のWARファイルが必要です。
1. SpringBootServletInitializer
を拡張します
@SpringBootApplication
クラスを更新してSpringBootServletInitializer
を拡張し、configure
メソッドをオーバーライドします。
1.1 Classic Spring Boot JAR deployment.
StartWebApplication.java
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StartWebApplication { public static void main(String[] args) throws Exception { SpringApplication.run(StartWebApplication.class, args); } }
1.2 For WAR deployment.
StartWebApplication.java
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class StartWebApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(StartWebApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(StartWebApplication.class); } } /*@SpringBootApplication public class StartWebApplication { public static void main(String[] args) throws Exception { SpringApplication.run(StartWebApplication.class, args); } }*/
複数のメインクラスの場合、Spring Bootに開始するメインクラスを必ず指定します。
pom.xml
com.example.SpringBootWebApplication
これを読んでください–Spring Boot – Which main class to start
2. 埋め込みサーブレットコンテナを提供済みとしてマークしました
pom.xml
org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-tomcat provided
3. パッケージをwarに更新
pom.xml
war
完了、プロジェクトをビルドし、展開用のWARファイルをコピーします。
ソースコードをダウンロード
$ git clone https://github.com/example/spring-boot.git
$ cd web-thymeleaf-war
$ mvn package
$ copy web-thymeleaf-war/target/example.war $TOMCAT/webapps/
$ start Tomcat
$ localhost:8080/example