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(外部サイト、英語) を使用して、ブランクプロジェクトを生成する。
カレントディレクトリを、ブランクプロジェクトを作成したいディレクトリ(任意のディレクトリで可)に変更する。
その後に、以下のように「mvn archetype:generate」コマンドを実行する。
mvn archetype:generate -DarchetypeGroupId=com.nablarch.archetype -DarchetypeArtifactId=nablarch-jaxrs-archetype -DarchetypeVersion=5u6
上記コマンドに含まれるパラメータのうち、重要なものを以下に示す。
設定値 | 説明 |
---|---|
-DarchetypeVersion | 使用したいアーキタイプのバージョンを指定する(Nablarch 5u6以降では、Nablarchのバージョン) |
8.3.2.3.2. プロジェクト情報の入力¶
上記コマンドを実行すると、以下の項目について入力を求められるので、 生成されるブランクプロジェクトに関する情報を入力する。
本手順では以下の値を入力したとして説明を行う。
入力項目 | 説明 | 設定例 |
---|---|---|
groupId | グループID(通常はパッケージ名を入力) | com.example |
artifactId | アーティファクトID | myapp-jaxrs |
version | バージョン番号 | 0.1.0 |
package | パッケージ(通常はグループIDと同じ) | com.example |
重要
項目groupIdおよびpackageは、Javaのパッケージ名にマッピングされる。 よって、これらの入力値には、英小文字、数字、ドットを使用し、ハイフンは使用しないこと。
プロジェクト情報の入力が終わると、Y: :と表示される。
- 入力した内容をもとに、ひな形を生成する場合には「Y」を入力してください。
- プロジェクト情報の入力をやり直したい場合には「N」を入力してください。
コマンドが正常終了した場合、ブランクプロジェクトがカレントディレクトリ配下に作成される。
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(外部サイト、英語) を参照。
起動に成功するとコンソールに以下のようなログが出力される。
(中略)
2016-09-03 09:21:59.719 -INFO- ROO [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のデータの確認方法や、ブランクプロジェクトに組み込まれているツールに関しては、 初期セットアップ手順 補足事項 を参照すること。