概要
この記事は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
参考
- [Spring Framework Documentation] (https://docs.spring.io/spring/docs/5.1.9.RELEASE/spring-framework-reference/index.html)
ひな型の作成
Eclipseを起動しJava EE
パースペクティブを開きます。
動的 Web プロジェクトの作成
プロジェクト・エクスプローラービューのメニューから動的 Web プロジェクトを作成します
のリンクをクリックします。(または、メニューバー → ファイル
→ 新規
→ 動的 Web プロジェクト
)
「新規動的 Web プロジェクト」の画面で下記の項目を入力し次へ
のボタンをクリックします。
- プロジェクト名 : 任意(この例では
demo
) - ターゲットランタイム : Tomcat9 (Java11)
- 動的 web モジュール バージョン : 4.0
次の画面でビルド・パス上のソース・フォルダーを編集します。
最初に表示されている"src"を選択して除去
ボタンをクリックします。
次にフォルダーの追加
ボタンをクリックして、Mavenプロジェクトのソースフォルダーの構成にするために下記4つを追加します。
- src\main\java
- src\main\resources
- src\test\java
- src\test\resources
次の画面で web.xmlデプロイメント記述子の生成
にチェックを入れ完了
ボタンをクリックします。
Mavenプロジェクトへ変換
Java リソースの"src/main/java"を右クリック → 新規
→ パッケージ
を選択します。
「新規 Java パッケージ」画面で"com.example.demo"を追加します。
同様に"src/main/test"にも同じパッケージを追加します。
プロジェクト名を右クリック → 構成
→ Maven プロジェクトへ変換
をクリックします。
「新規 POM の作成」画面で以下の項目を入力し完了
ボタンをクリックします。
- グループId : 任意 (この例では"com.example")
- アーティファクトId : 任意 (この例では"demo")
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 ビルド
をクリックします。
「構成の編集」画面でゴールに"clean package"と入力し実行
ボタンをクリック
コンソールに以下のログが出力されれば成功です。
[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>
/WebContent/WEB-INF/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ファイルを以下の内容で作成します。
<?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
ディレクトリを作成します。
画像ファイル以外にcssやjsも同じように配置したい場合はimages
ディレクトリと同様にpublic下にjs
やcss
といった名前のディレクトリを追加します。
/WebContent
|
`--- /public
|
`--- /images // 画像ファイル
|
`--- /js // javascriptファイル
|
`--- /css // cssファイル
これでアプリケーションのひな型の作成は終了です。
動作確認用の機能追加
シンプルなコントローラを追加する
動作確認用に簡単なメッセージを返すだけのコントローラを追加してみます。
プロパティファイルの作成
アプリケーションからプロパティファイルが参照できることを確認するためにダミーのプロパティファイルを作成します。
この例ではJava リソースの"src/main/resources"にdemo.propertiesというプロパティファイルを作成しました。
application.name = spring 5 demo application
画像ファイルの配置
jspから画像ファイルにアクセスできるか確認するためにダミーの画像ファイルを配置します。
この例では"/WebContent/public/images"にsample_1.pngという画像ファイルを配置しました。
この画像ファイルはlocalhost:8080/demo/resources/images/sample_1.png
というURLでアクセスできます。
HelloController.javaの作成
パッケージ"com.example.demo"直下にHelloControllerクラスを作成します。
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というファイルを作成します。
<%@ 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サーバーを追加します。
サーバービューを開き使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください...
をクリックします。
"サーバーのタイプ"にTomcat v9.0 サーバー
を選択し次へ
ボタンをクリックします。
使用可能なリソースの欄からこのアプリケーション(demo)を選択して追加
ボタンをクリックして構成済みへ移動させて最後に完了
ボタンをクリックします。
追加した直後にプロジェクト名にエラーマーク(赤いアイコン)が表示されている場合は、プロジェクト名を右クリック → リフレッシュ
をクリックします。
サーバービューに追加した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/
にアクセスして次のようなページが表示されれば成功です。
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ファイルでダウンロードされます。
ダウンロードしたzipファイル(demo-spring5-webmvc-master.zip)を適当な場所へ展開します。
展開して出来たディレクトリ名をdemo-spring5-webmvc
にリネームして、Eclipseのワークスペースへコピーします。
Eclipseを起動しプロジェクト・エクスプローラー上で右クリック → インポート
→ インポート...
→ Maven
→ 既存 Maven プロジェクト
をクリックします。
参照...
ボタンをクリックしてワークスペース内にコピーしたdemo-spring5-webmvc
ディレクトリを選択、次に完了
ボタンをクリックします。
プロジェクト・エクスプローラーにdemo-spring5-webmvc
がインポートされます。
プロジェクト名を右クリック → ビルド・パス
→ ビルド・パスの構成...
をクリックし、下記4カ所を確認します。
Java のビルド・パス
ビルド・パス上のソース・フォルダーが図の通りであることを確認
ターゲット・ランタイム
Tomcat9 (java11)にチェックを入れ適用
ボタンをクリック
Web デプロイメント・アセンブリー
パッケージ構造が図の通りであることを確認
プロジェクト・ファセット
Javaおよび動的 Web モジュールのバージョンが図の通りであることを確認
図の通りであれば最後に適用して閉じる
ボタンをクリックします。
サーバビュー上のローカルホストの Tomcat9(java11)
を右クリック → 追加および除去...
をクリックします。(Tomcat9を作成していなければ作成から)
使用可能の欄からdemo-spring5-webmvc
を選択し追加
ボタンをクリックして構成済みへ移動させ、完了
ボタンをクリックします。
サーバビュー上のローカルホストの Tomcat9(java11)
を右クリック → 開始
をクリックします。
アプリケーションが起動したらブラウザで下記URLにアクセスしてページが表示されることを確認します。
http://localhost:8080/demo-spring5-webmvc/
開始
をクリックしてもエラーが発生して開始できない場合
- プロジェクトにエラーが起きていないか確認(赤いエラーアイコンが付いていないか)
- プロジェクト名を右クリック →
Maven
→プロジェクトの更新
- メニューバー → プロジェクト →
クリーン
→すべてのプロジェクトをクリーン
にチェック →クリーン
- サーバビューの
ローカルホスト の Tomcat9 (Java11)
を右クリック →クリーン
続いて、再度ローカルホスト の Tomcat9 (Java11)
を右クリック →公開
をクリック