8.3.2. RESTfulウェブサービスプロジェクトの初期セットアップ¶
RESTfulウェブサービスプロジェクトの初期セットアップでは以下を行う。
- RESTfulウェブサービスプロジェクトの生成
- RESTfulウェブサービスプロジェクトの動作確認
8.3.2.2. 生成するプロジェクトの概要¶
本手順で生成するプロジェクトの概要は以下の通りである。
項目 | 説明 |
---|---|
プロジェクト種別 | Mavenプロジェクト |
プロジェクト構成 | 単一プロジェクト構成 |
使用DB | H2 Databaes Engine(アプリケーションに組み込み) |
組み込まれているアダプタ |
|
生成するプロジェクトに含まれるもの | 生成されたプロジェクトには以下が含まれる。
|
他のプロジェクトとの関係、及びディレクトリ構成は、 Mavenアーキタイプの構成 を参照。
8.3.2.3. ブランクプロジェクト作成¶
Nablarchが提供するアーキタイプを使用してブランクプロジェクトを生成する。
8.3.2.3.1. mvnコマンドの実行¶
Maven Archetype Plugin(外部サイト、英語) を使用して、ブランクプロジェクトを生成する。
カレントディレクトリを、ブランクプロジェクトを作成したいディレクトリ(任意のディレクトリで可)に変更し、以下のファイルを配置する。
配置後、引数に必要なパラメータを指定しbatファイルを実行する。
generateWebServiceProject.bat 5u18 <<groupId>> <<artifactId>> <<version>> <<package(任意)>>
上記コマンドに設定するパラメータは以下の通り。 なお、nablarchのバージョンを変更したい場合には 5u18 を変更すること。
入力項目 | 説明 | 設定例 |
---|---|---|
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のデータの確認方法や、ブランクプロジェクトに組み込まれているツールに関しては、 初期セットアップ手順 補足事項 を参照すること。