LoginSignup
20
27

More than 3 years have passed since last update.

Spring Web MVCを利用するプロジェクトのひな型を作成する手順

Last updated at Posted at 2019-08-24

概要

この記事はSpring Web MVCを利用するプロジェクトのひな型を作成する手順と、そのひな型に簡単な機能を追加して動作確認を行う手順を説明しています。

Spring Bootではプロジェクトのひな型を作成するツールがあるので簡単にプロジェクトを作成することができますが、Spring Frameworkの場合、そのようなツールがないので開発者が1から作成していく必要があります。

ひな型の作成

なるべくEclipse上の操作だけで作成できるようにしました。作成の大まかな流れは動的Webプロジェクトの作成Mavenプロジェクトへ変換Spring WebMvcを依存関係に追加 です。

なお、ひな型が利用するビューはJSPとしています。

動作確認用の機能追加

簡単なメッセージを表示するコントローラとjspを実装します。またビルドしたwarファイルを別途インストールしたTomcat上にデプロイする手順も説明しています。

環境

  • Windows 10 Professional 1903
  • Pleiades All in One Eclipse 2019-06
    • OpenJDK 11
    • Tomcat 9.0
    • Maven 3.6
  • Spring WebMvc 5.1.9.RELEASE

参考

ひな型の作成

Eclipseを起動しJava EEパースペクティブを開きます。
00.png

動的 Web プロジェクトの作成

プロジェクト・エクスプローラービューのメニューから動的 Web プロジェクトを作成します のリンクをクリックします。(または、メニューバー → ファイル新規動的 Web プロジェクト
01.png

「新規動的 Web プロジェクト」の画面で下記の項目を入力し次へのボタンをクリックします。

  • プロジェクト名 : 任意(この例ではdemo
  • ターゲットランタイム : Tomcat9 (Java11)
  • 動的 web モジュール バージョン : 4.0

02.png

次の画面でビルド・パス上のソース・フォルダーを編集します。
最初に表示されている"src"を選択して除去ボタンをクリックします。
03.png

次にフォルダーの追加ボタンをクリックして、Mavenプロジェクトのソースフォルダーの構成にするために下記4つを追加します。

  • src\main\java
  • src\main\resources
  • src\test\java
  • src\test\resources

04.png

追加した結果です。次へボタンをクリックします。
05.png

次の画面で web.xmlデプロイメント記述子の生成 にチェックを入れ完了ボタンをクリックします。
06.png

プロジェクトを生成した直後の状態です。
07.png

Mavenプロジェクトへ変換

Java リソースの"src/main/java"を右クリック → 新規パッケージ を選択します。
07_2.png

「新規 Java パッケージ」画面で"com.example.demo"を追加します。
同様に"src/main/test"にも同じパッケージを追加します。
08.png

パッケージを追加した直後の状態です。
08_2.png

プロジェクト名を右クリック → 構成Maven プロジェクトへ変換をクリックします。
09.png

「新規 POM の作成」画面で以下の項目を入力し完了ボタンをクリックします。

  • グループId : 任意 (この例では"com.example")
  • アーティファクトId : 任意 (この例では"demo")

10.png

Mavenプロジェクトへの変換が完了するとpom.xmlファイルが生成されています。下記は生成された直後の内容です。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <release>11</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

pom.xmlを編集します。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>11</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
  </properties>

  <dependencies>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <compilerArgs>
            <arg>-Xlint:all</arg>
          </compilerArgs>
          <release>${java.version}</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

pom.xmlの編集が終わったらプロジェクト名を右クリック → Mavenプロジェクトの更新 → プロジェクトにチェックを入れてOKボタンをクリックします。
プロジェクトの更新が完了したらプロジェクト名を右クリック → 実行7 Maven ビルドをクリックします。
11.png

「構成の編集」画面でゴールに"clean package"と入力し実行ボタンをクリック
12.png

コンソールに以下のログが出力されれば成功です。

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.766 s
[INFO] Finished at: 2019-08-23T13:58:04+09:00
[INFO] ------------------------------------------------------------------------

Spring Framework WebMvc の追加

pom.xmlを開きdependenciesにspring-webmvcを追加します。

<dependencies>
    <!--追加-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.1.9.RELEASE</version>
    </dependency>
</dependencies>

次にSpring設定フィルを作成します。
13.png

/WebContent/WEB-INF/root-context.xmlファイルを以下の内容で作成します。

root-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- Root Context: defines shared resources visible to all other web components -->

</beans>

/WebContent/WEB-INF/app-context.xmlファイルを以下の内容で作成します。

app-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        https://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <!-- Enables the Spring MVC @Controller programming model -->
    <mvc:annotation-driven />

    <!-- Default Servlet -->
    <mvc:default-servlet-handler />

    <!-- Static Resources -->
    <mvc:resources mapping="/resources/**" location="/public/" cache-period="#{60 * 60}" />

    <!-- View Technologies -->
    <mvc:view-resolvers>
        <mvc:jsp prefix="/WEB-INF/views/" />
    </mvc:view-resolvers>

    <context:property-placeholder location="classpath:*.properties" />

    <context:component-scan base-package="com.example.demo" />

</beans>

/WebContent/WEB-INF/web.xmlを編集します。

編集前

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

編集後

display-name要素は任意です。(この例ではmemo

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>demo</display-name>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/root-context.xml</param-value>
  </context-param>

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/app-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

最後に、jspファイルを配置する/WebContent/WEB-INF/viewsディレクトリと、静的ファイル(画像ファイル)を配置する/WebContent/public/imagesディレクトリを作成します。
14_2.png

画像ファイル以外にcssやjsも同じように配置したい場合はimagesディレクトリと同様にpublic下にjscssといった名前のディレクトリを追加します。

/WebContent
  |
  `--- /public
         |
         `--- /images  // 画像ファイル
         |
         `--- /js      // javascriptファイル
         |
         `--- /css     // cssファイル

これでアプリケーションのひな型の作成は終了です。

動作確認用の機能追加

シンプルなコントローラを追加する

動作確認用に簡単なメッセージを返すだけのコントローラを追加してみます。

プロパティファイルの作成

アプリケーションからプロパティファイルが参照できることを確認するためにダミーのプロパティファイルを作成します。
この例ではJava リソースの"src/main/resources"にdemo.propertiesというプロパティファイルを作成しました。
15_2.png

demo.properties
application.name = spring 5 demo application

画像ファイルの配置

jspから画像ファイルにアクセスできるか確認するためにダミーの画像ファイルを配置します。
この例では"/WebContent/public/images"にsample_1.pngという画像ファイルを配置しました。
16_2.png

この画像ファイルはlocalhost:8080/demo/resources/images/sample_1.pngというURLでアクセスできます。

HelloController.javaの作成

パッケージ"com.example.demo"直下にHelloControllerクラスを作成します。

16_3.png

package com.example.demo;

import java.time.LocalDateTime;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    // (1)
    @Value("${application.name}")
    private String appName;

    // (2)
    @GetMapping(value = "/")
    public String hello(Model model) {
        model.addAttribute("message", "Hello World");
        model.addAttribute("now", LocalDateTime.now());
        model.addAttribute("appName", appName);
        return "hello";
    }

}

(1) Valueアノテーションでdemo.propertiesのapplication.nameというキーの値をフィールドに代入しています。

@Value("${application.name}")
private String appName;

(2) クライアントからパス/へのGetリクエストをhelloメソッドにマッピングしています。

具体的には以下のURLへアクセスするとhelloメソッドが実行されます。

http://localhost:8080/demo/

また、戻り値の"hello"はhelo.jspファイルを指します。

/WebContent
  |
  `--- /WEB-INF
         |
         `--- /views
                |
                `--- hello.jsp

hello.jspの作成

"/WebContent/WEB-INF/views"にhello.jspというファイルを作成します。
16_4.png

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
  <h1>${appName}</h1>
  <div>
    <p>${message}</p>
    <p>${now}</p>
  </div>
  <div>
    <img src="/demo/resources/images/sample_1.png" />
  </div>
</body>
</html>

Tomcatサーバの作成

Eclipse上でアプリケーションを起動するためにサーバービューでTomcatサーバーを追加します。
サーバービューを開き使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください...をクリックします。
17.png

"サーバーのタイプ"にTomcat v9.0 サーバーを選択し次へボタンをクリックします。
18.png

使用可能なリソースの欄からこのアプリケーション(demo)を選択して追加ボタンをクリックして構成済みへ移動させて最後に完了ボタンをクリックします。
19.png

追加した直後にプロジェクト名にエラーマーク(赤いアイコン)が表示されている場合は、プロジェクト名を右クリック → リフレッシュをクリックします。
20.png

サーバービューに追加したTomcatサーバー(ローカルホスト の Tomcat9 (java11))を右クリック → 開始 でアプリケーションを起動します。
コンソールに下記のような起動メッセージが表示されたことを確認したら、

情報: Completed initialization in 1341 ms [金 8月 23 19:55:18 JST 2019]
情報: プロトコルハンドラー ["http-nio-8080"] を開始しました。 [金 8月 23 19:55:18 JST 2019]
情報: プロトコルハンドラー ["ajp-nio-8009"] を開始しました。 [金 8月 23 19:55:18 JST 2019]
情報: サーバーの起動 [3,850]ms [金 8月 23 19:55:18 JST 2019]

ブラウザで http://localhost:8080/demo/ にアクセスして次のようなページが表示されれば成功です。
21.png

JSP標準タグライブラリを使う

pom.xmlを開きdependenciesに以下の依存関係を追加します。

<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>jstl-api</artifactId>
  <version>1.2</version>
</dependency>
<dependency>
  <groupId>org.apache.taglibs</groupId>
  <artifactId>taglibs-standard-impl</artifactId>
  <version>1.2.5</version>
</dependency>

HelloController.javaを開き、helloメソッドに以下の修正を行います。

@GetMapping(value = "/")
public String hello(Model model) {
    model.addAttribute("message", "Hello World");
    model.addAttribute("now", LocalDateTime.now());
    model.addAttribute("appName", appName);
    // ↓ 追加
    List<String> fruits = List.of("apple", "banana", "cherry");
    model.addAttribute("fruits", fruits);
    // ↑ 追加
    return "hello";
}

hello.jspを開き、以下の修正を行います。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- ↓ (1) 追加 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- ↑ 追加 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hello</title>
</head>
<body>
  <h1>${appName}</h1>
  <div>
    <p>${message}</p>
    <p>${now}</p>
  </div>
  <div>
    <img src="/demo/resources/images/sample_1.png" />
  </div>
  <!-- ↓ (2) 追加 -->
  <div>
    <ol>
    <c:forEach var="value" items="${fruits}" varStatus="index">
      <li>${value} (${index.count})</li>
    </c:forEach>
    </ol>
  </div>
  <!-- ↑ 追加 -->
</body>
</html>

(1) Coreタグライブラリを使用する宣言を行っています。prefixに指定した文字(この場合は"c")がJSP内のタグ名になります。

(2) CoreタグライブラリのforEachを使った実装例です。

ログファイルを出力する

アプリケーションのログを出力するようにロギングライブラリ(slf4jとlog4j2)を使用します。
pom.xmlを開きdependenciesに以下の依存関係を追加します。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.12.1</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jcl</artifactId>
    <version>2.12.1</version>
    <scope>runtime</scope>
</dependency>

log4j2の設定ファイルlog4j2.xmlを"src/main/resources"に以下の内容で作成します。
property要素で指定しているログ出力先(filenamePattern)およびファイル名(filename)は、環境に合わせて任意の値に書き換えます。(この例ではC:\var\logs\demo.logにログを出力します)

<?xml version="1.0" encoding="UTF-8"?>
<configuration strict="true">
  <properties>
    <property name="patternlayout">%d{yyyy-mm-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</property>
    <property name="filename">C:/var/logs/demo.log</property>
    <property name="filenamePattern">C:/var/logs/demo-%d{yyyy-dd-MM}-%i.log.gz</property>
  </properties>
  <appenders>
    <appender name="Console" type="Console" target="SYSTEM_OUT">
      <layout type="PatternLayout" pattern="${patternlayout}"/>
    </appender>
     <appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" append="true">
       <layout type="PatternLayout" pattern="${patternlayout}"/>
       <Policies>
         <OnStartupTriggeringPolicy/>
         <SizeBasedTriggeringPolicy size="100 KB"/>
       </Policies>
       <DefaultRolloverStrategy max="30"/>
     </appender>
  </appenders>
  <loggers>
    <logger name="com.example.demo" level="debug" additivity="false">
      <appender-ref ref="Console"/>
      <appender-ref ref="File"/>
    </logger>
    <root level="info">
      <appender-ref ref="Console"/>
    </root>
  </loggers>
</configuration>

アクセスしてきたクライアントのユーザーエージェントをログを出力するようにコントローラを修正します。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.servlet.http.HttpServletRequest;

@Controller
public class HelloController {
    // ↓ 追加
    private static final Logger LOG = LoggerFactory.getLogger(HelloController.class);
    // ↑ 追加

    @GetMapping(value = "/")
    // ↓ 修正
    public String hello(HttpServletRequest req, Model model) {
    // ↑ 修正
      // ↓ 追加
      LOG.debug("call hello - UA : {}", req.getHeader("User-Agent"));
      // ↑ 追加

      // ...省略...
    }

}

Eclipseのコンソールとログファイルに以下のようなログが出力されます。

Eclipseを使わずにビルド・デプロイを行う

Eclipseを使わずにアプリケーションをビルドし、生成したwarファイルをTomcatサーバーにデプロイしてアプリケーションを起動する手順を説明します。

このためにJava (OpenJDK)、Maven、Tomcatを別途インストールします。
以降の説明は下記のディレクトリにインストールしたという前提で進めます。

C:\dev
    |
    `--- \jdk-11.0.2
    |
    `--- \apache-maven-3.6.1
    |
    `--- \apache-tomcat-9.0.24

インストール

OpenJDK

上記のアーカイブページにアクセスしてOpenJDK 11.0.2をダウンロードします。
ダウンロードしたアーカイブファイルを展開してC:\dev\jdk-11.0.2へ配置します。

環境変数を設定できる場合

環境変数 備考
JAVA_HOME C:\dev\jdk-11.0.2 新規登録、すでに登録されている場合は書き換えて問題ないか確認してください
PATH %JAVA_HOME%\bin PATHに追加

環境変数を設定できない場合

コマンドプロンプトを起動し、以下のコマンドで環境変数を追加します。(コマンドプロンプトを閉じると追加した内容が消えます。)

> set JAVA_HOME=C:\dev\jdk-11.0.2
> set PATH=%PATH%%JAVA_HOME%\bin;

確認

> java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Maven

上記のダウンロードページにアクセスしてBinary zip archiveのMaven 3.6.1をダウンロードします。
ダウンロードしたアーカイブファイルを展開してC:\dev\apache-maven-3.6.1へ配置します。

環境変数を設定できる場合

環境変数 備考
MAVEN_HOME C:\dev\apache-maven-3.6.1 新規登録、すでに登録されている場合は書き換えて問題ないか確認してください
PATH %MAVEN_HOME%\bin PATHに追加

環境変数を設定できない場合

> set MAVEN_HOME=C:\dev\apache-maven-3.6.1
> set PATH=%PATH%%MAVEN_HOME%\bin;

確認

> mvn --version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T04:00:29+09:00)
Maven home: C:\dev\apache-maven-3.6.1\bin\..
Java version: 11.0.2, vendor: Oracle Corporation, runtime: C:\dev\jdk-11.0.2
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Tomcat

上記のダウンロードページにアクセスして64-bit Windows版のTomcat 9.0.24をダウンロードします。
ダウンロードしたアーカイブファイルを展開してC:\dev\apache-tomcat-9.0.24へ配置します。

環境変数を設定できる場合

環境変数 備考
CATALINA_HOME C:\dev\apache-tomcat-9.0.24 新規登録、すでに登録されている場合は書き換えて問題ないか確認してください
PATH %MAVEN_HOME%\bin PATHに追加

環境変数を設定できない場合

> set CATALINA_HOME=C:\dev\apache-tomcat-9.0.24
> set PATH=%PATH%%CATALINA_HOME%\bin;

確認

> version
Using CATALINA_BASE:   "C:\dev\apache-tomcat-9.0.24"
Using CATALINA_HOME:   "C:\dev\apache-tomcat-9.0.24"
Using CATALINA_TMPDIR: "C:\dev\apache-tomcat-9.0.24\temp"
Using JRE_HOME:        "C:\dev\jdk-11.0.2"
Using CLASSPATH:       "C:\dev\apache-tomcat-9.0.24\bin\bootstrap.jar;C:\dev\apache-tomcat-9.0.24\bin\tomcat-juli.jar"
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
Server version: Apache Tomcat/9.0.24
Server built:   Aug 14 2019 21:16:42 UTC
Server number:  9.0.24.0
OS Name:        Windows 10
OS Version:     10.0
Architecture:   amd64
JVM Version:    11.0.2+9
JVM Vendor:     Oracle Corporation

インストールディレクトリのconf\logging.propertiesをテキストエディタで開き、51行目の下記の行をコメントアウトします。

#java.util.logging.ConsoleHandler.encoding = UTF-8

アプリケーションのビルド

コマンドプロンプトでアプリケーションのプロジェクトディレクトリへ移動します。(pom.xmlファイルのあるディレクトリ)
以下のコマンドでアプリケーションをビルドします。

> mvn clean package

次のようなメッセージが画面に表示されればビルドは成功です。targetディレクトリにwarファイルが生成されています。

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.039 s
[INFO] Finished at: 2019-08-24T16:00:42+09:00
[INFO] ------------------------------------------------------------------------

targetディレクトリに移動します。

> cd target

ここにdemo-0.0.1-SNAPSHOT.warというwarファイルが生成されていることを確認します。

> dir *.war

以上でビルドは完了です。

アプリケーションのデプロイ

このwarファイルをTomcatサーバのwebappsディレクトリへdemo.warというファイル名でコピーします。

> copy demo-0.0.1-SNAPSHOT.war %CATALINA_HOME%\webapps\demo.war

コピーが出来たらTomcatサーバを起動します。

> catalina start

コマンドプロンプトとは別のウィンドウが開き、Tomcatサーバの起動ログが画面に表示されます。
この画面に"サーバーの起動 [x,xxx]ms"と表示されれば起動完了です。

ブラウザで "http://localhost:8080/demo/" にアクセスしてページが表示されることを確認します。

Tomcatサーバを停止させるには、起動したコマンドプロンプトで下記のコマンドを実行します。

> catalina stop

GitHubからソースコードをダウンロード

緑色のボタン(Clone or download)をクリック → Download ZIPをクリックします。
ソースコードがzipファイルでダウンロードされます。
g01.png

ダウンロードしたzipファイル(demo-spring5-webmvc-master.zip)を適当な場所へ展開します。
展開して出来たディレクトリ名をdemo-spring5-webmvcにリネームして、Eclipseのワークスペースへコピーします。

Eclipseを起動しプロジェクト・エクスプローラー上で右クリック → インポートインポート...Maven既存 Maven プロジェクトをクリックします。
g02.png

参照...ボタンをクリックしてワークスペース内にコピーしたdemo-spring5-webmvcディレクトリを選択、次に完了ボタンをクリックします。
g04.png

プロジェクト・エクスプローラーにdemo-spring5-webmvcがインポートされます。
プロジェクト名を右クリック → ビルド・パスビルド・パスの構成...をクリックし、下記4カ所を確認します。
Java のビルド・パス
ビルド・パス上のソース・フォルダーが図の通りであることを確認
g08.png
ターゲット・ランタイム
Tomcat9 (java11)にチェックを入れ適用ボタンをクリック
g05.png
Web デプロイメント・アセンブリー
パッケージ構造が図の通りであることを確認
g06.png
プロジェクト・ファセット
Javaおよび動的 Web モジュールのバージョンが図の通りであることを確認
g07.png

図の通りであれば最後に適用して閉じるボタンをクリックします。

サーバビュー上のローカルホストの Tomcat9(java11)を右クリック → 追加および除去...をクリックします。(Tomcat9を作成していなければ作成から)
g09.png

使用可能の欄からdemo-spring5-webmvcを選択し追加ボタンをクリックして構成済みへ移動させ、完了ボタンをクリックします。
g10.png

サーバビュー上のローカルホストの Tomcat9(java11)を右クリック → 開始をクリックします。
g11.png

アプリケーションが起動したらブラウザで下記URLにアクセスしてページが表示されることを確認します。

http://localhost:8080/demo-spring5-webmvc/

開始をクリックしてもエラーが発生して開始できない場合

  • プロジェクトにエラーが起きていないか確認(赤いエラーアイコンが付いていないか)
  • プロジェクト名を右クリック → Mavenプロジェクトの更新
  • メニューバー → プロジェクト → クリーンすべてのプロジェクトをクリーンにチェック → クリーン
  • サーバビューのローカルホスト の Tomcat9 (Java11)を右クリック → クリーン 続いて、再度ローカルホスト の Tomcat9 (Java11)を右クリック → 公開をクリック
20
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
27