Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
56
Help us understand the problem. What is going on with this article?
@TEBASAKI

Spring Boot解説第4回(開発環境編:warファイル作成)

More than 5 years have passed since last update.

こんにちは!
情創 技術開発局の@TEBASAKIです。
桜は散りましたが、私の手羽は満開です。

今回もSpring Boot解説のほうを進めていきたいと思います。
第4回は「開発環境編:warファイル作成」です。

warファイル作成の理由

Spring Bootはビルドで作成したjarの中にTomcatが組み込まれており、
jar単独でもWebアプリケーションが動作します。
そして、サーバー環境でjarをサービスに登録し、
apacheと連携させる流れとなります。(他にも方法ありますが、割愛)

一つのTomcatで複数アプリケーションを管理したい場合、
Spring Bootでwarファイルを作成することができます。
今回はwarファイルの作成方法を解説します。

なお、今回使用するプログラムは第2回で使用したHelloWorldです。

1.プログラムの修正

エントリポイントのApplication.javaが、
SpringBootServletInitializerを継承するように修正します。
そして、設定クラスを認識させるために、
SpringApplicationBuilderメソッドを追加します。

Application.java

/* 省略 */

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

/* 省略 */

    /**
     * Servletコンテナ起動時の設定クラス認識。
     *
     * <PRE>
     * Servletコンテナで起動したときにどのクラスが設定クラスなのか認識させます。
     * </PRE>
     *
     * @param  SpringApplicationBuilder
     * @return SpringApplicationBuilder
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
}

2.build.gradleの修正

apply plugin: 'war'を追加します。
また、dependenciesに以下の記述を追加することで、
組み込みのTomcatをwarファイルに含めないようにします。

builde.gradle

// 省略

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'spring-boot'
apply plugin: 'war'

// 省略

dependencies {

// 省略

    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")

}

3.warファイルの作成

いよいよwarファイルの作成に移りますが、その前にコンテキストパスの設定をします。
src/mainの下にresourcesフォルダを作成し、
その下にapplication.propertiesファイルを作成、以下のように記述します。

application.properties
//例
server.context-path=/demo

以上を保存したら、右クリック→Gradle→すべてリフレッシュを選択して、
Gradleプロジェクトのリフレッシュを行います。
続いてプロジェクトを右クリック→Gradle→タスク・クイック・ランチャーを選択し、
「war」と記述してからEnterで実行します。
image

または、Gradleタスクタブでプロジェクトを選択し、warをダブルクリックして実行します。
このとき濃緑色のGradleタスクを使うことに注意しましょう。
image

(プロジェクトフォルダ)→build→libsにwarファイルが作成されていれば完了です。

4.Tomcatへのwarファイル配備

第1回で解説した通り、Tomcat8を使用します。
Tomcatのインストールについてはこちらを参照してください。
Configure TomcatからStartを押してTomcatを起動します。
※Startup typeがAutomaticになっているとTomcatが自動で起動してしまい、
 Spring Bootの組み込みTomcatが起動できなくなってしまうので、
 Manualにしておくことをおすすめします。
image

次にTomcat Managerを起動します。
ここでwarファイルを配備します。
image

配備方法は2通りありますが、今回は上の方法で配備します。
先ほどapplication.propertiesにコンテキストパスを設定しましたが、
Tomcatに配備する際はこちらで設定しなければなりません。
コンテキストパスに/demoを指定して、warファイルのパスを指定したら配備を押します。
下記のようにアプリケーション一覧に表示されたら配備完了です。
image

最後に http://localhost:8080/demo/ にアクセスして確認してみましょう。
下記のように表示されたらOKです。
image

今回はここまでです。
それではまたお会いしましょう!

56
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
TEBASAKI
johso
礼節をもって、最適なITソリューションを提供する集団。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
56
Help us understand the problem. What is going on with this article?