8.3.2. RESTfulウェブサービスプロジェクトの初期セットアップ

RESTfulウェブサービスプロジェクトの初期セットアップでは以下を行う。

  • RESTfulウェブサービスプロジェクトの生成
  • RESTfulウェブサービスプロジェクトの動作確認

8.3.2.1. 事前準備

後の 起動確認 で使用するため、以下のいずれかをインストールする。

  • Firefox
  • Chrome

8.3.2.2. 生成するプロジェクトの概要

本手順で生成するプロジェクトの概要は以下の通りである。

項目 説明
プロジェクト種別 Mavenプロジェクト
プロジェクト構成 単一プロジェクト構成
使用DB H2 Databaes Engine(アプリケーションに組み込み)
組み込まれているアダプタ
生成するプロジェクトに含まれるもの

生成されたプロジェクトには以下が含まれる。

  • NablarchのRESTfulウェブサービス用の基本的な設定
  • 疎通確認用RESTfulウェブサービス
  • Mavenと連動して動作するツールの初期設定( nablarch-archetype-parent(親プロジェクト) を参照することによって取り込んでいる)。

他のプロジェクトとの関係、及びディレクトリ構成は、 Mavenアーキタイプの構成 を参照。

8.3.2.3. ブランクプロジェクト作成

Nablarchが提供するアーキタイプを使用してブランクプロジェクトを生成する。

8.3.2.3.1. mvnコマンドの実行

Maven Archetype Plugin(外部サイト、英語) を使用して、ブランクプロジェクトを生成する。

カレントディレクトリを、ブランクプロジェクトを作成したいディレクトリ(任意のディレクトリで可)に変更し、以下のファイルを配置する。

バッチファイル

配置後、引数に必要なパラメータを指定しbatファイルを実行する。

generateWebServiceProject.bat 5u20 <<groupId>> <<artifactId>> <<version>> <<package(任意)>>

上記コマンドに設定するパラメータは以下の通り。 なお、nablarchのバージョンを変更したい場合には 5u20 を変更すること。

入力項目 説明 設定例
groupId グループID(通常はパッケージ名を入力) com.example
artifactId アーティファクトID myapp-jaxrs
version バージョン番号 0.1.0
package パッケージ(通常はグループIDと同じ) com.example

重要

項目groupIdおよびpackageは、Javaのパッケージ名にマッピングされる。 よって、これらの入力値には、英小文字、数字、ドットを使用し、ハイフンは使用しないこと。

コマンドが正常終了した場合、ブランクプロジェクトがカレントディレクトリ配下に作成される。

8.3.2.4. 疎通確認

8.3.2.4.1. 自動テスト

アーキタイプから生成したプロジェクトには、以下のユニットテストが含まれている。

ユニットテストのクラス テスト内容
SampleActionTest DBアクセスを伴うテストが可能かを確認する。

ユニットテストを実行することで、ブランクプロジェクトの生成に成功していることを確認する。

以下のコマンドを実行する。

cd myapp-jaxrs
mvn test

補足

ここで使用しているMavenの「clean」「test」は、MavenのBuilt-in Lifecycleである。

他にどのようなLifecycleが存在するかについては、 Built-in Lifecycle Bindings(外部サイト、英語) を参照。

実行に成功すると、以下のようなログがコンソールに出力される。

(中略)
[INFO] ------------------------------------------------------------------------
[INFO] Building myapp-jaxrs 0.1.0
[INFO] ------------------------------------------------------------------------
(中略)
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
(以下略)

8.3.2.4.2. 起動確認

生成したプロジェクトには、以下のサービスが含まれている。

サービスを実装しているクラス 内容
SampleAction

RESTfulウェブサービスを実装する際に、一般的に使用するNablarchの機能についての動作確認用サービス。

応答にJSONを使用するサービスと、XMLを使用するサービスが存在する。

ブラウザからサービスを呼び出すことによって、ブランクプロジェクトの生成に成功していることを確認する。

8.3.2.4.2.1. サービスの起動

まだ、生成したプロジェクトにカレントディレクトリを移動していない場合は移動する。

cd myapp-jaxrs

次に、以下のコマンドを実行し、RESTfulウェブサービスをビルドする。

mvn compile

その後、以下のコマンドを実行することで、RESTfulウェブサービスの疎通確認用のアプリケーションを起動する。

mvn waitt:run-headless

補足

上記のコマンド例で使用しているMavenの「waitt:run-headless」は、 waitt maven pluginのrun-headlessゴールを使用するという指定である。

waitt maven pluginについては waitt maven plugin(外部サイト、英語) を参照。

起動に成功するとコンソールに以下のようなログが出力される。

(中略)
2020-04-28 08:46:53.366 -INFO- nablarch.fw.web.servlet.NablarchServletContextListener [null] boot_proc = [] proc_sys = [jaxrs] req_id = [null] usr_id = [null] [nablarch.fw.web.servlet.NablarchServletContextListener#contextInitialized] initialization completed.

8.3.2.4.2.2. 応答にJSONを使用するサービスを呼び出す

FireFoxまたはChromeを起動し、以下のURLをアドレスバーに入力する。

http://localhost:9080/find/json (左記の通り末尾に「/」は不要)

成功するとブラウザに以下のようにJSON形式の応答が表示される。

[{"userId":1,"kanjiName":"名部楽太郎","kanaName":"なぶらくたろう"},{"userId":2,"kanjiName":"名部楽次郎","kanaName":"なぶらくじろう"}]

補足

FireFoxまたはChromeの代わりにInternet Explorer 11を使用すると、ダウンロードするか否かの確認メッセージが表示される。

8.3.2.4.2.3. 応答にXMLを使用するサービスを呼び出す

FireFoxまたはChromeを起動し、以下のURLをアドレスバーに入力する。

http://localhost:9080/find/xml (左記の通り末尾に「/」は不要)

成功するとブラウザに以下のようにXML形式の応答が表示される。

<userList>
  <sampleUser>
    <kanaName>なぶらくたろう</kanaName>
    <kanjiName>名部楽太郎</kanjiName>
    <userId>1</userId>
  </sampleUser>
  <sampleUser>
    <kanaName>なぶらくじろう</kanaName>
    <kanjiName>名部楽次郎</kanjiName>
    <userId>2</userId>
  </sampleUser>
</userList>

8.3.2.4.3. 疎通確認になぜか失敗する場合

原因は分からないが疎通確認に失敗する場合、どこかで手順を誤っている可能性がある。

原因が分からない場合は、ブランクプロジェクト作成 からやり直してみること。

8.3.2.5. 補足

H2のデータの確認方法や、ブランクプロジェクトに組み込まれているツールに関しては、 初期セットアップ手順 補足事項 を参照すること。