Nablarchを使ったHTTPメッセージングウェブサービスのExampleです。
実行環境に以下のソフトウェアがインストールされている事を前提とします。
- Java Version : 17
- Maven 3.9.9以降
以下は、本手順では事前準備不要です。
| ソフトウェア | 説明 |
|---|---|
| APサーバ | このアプリケーションはJetty 12を使用しています。jetty-ee10-maven-pluginはJetty 12へのアプリケーションのデプロイ、起動を行います。 |
| DBサーバ | このアプリケーションはH2 Database Engine(以下H2)を組み込んであるため、別途インストールの必要はありません。 |
Gitを使用している場合、アプリケーションを配置したいディレクトリにて「git clone」コマンドを実行してください。 以下、コマンドの例です。
$mkdir c:\example
$cd c:\example
$git clone https://github.com/nablarch/nablarch-example-http-messaging.git
Gitを使用しない場合、最新のタグからzipをダウンロードし、任意のディレクトリへ展開してください。
jetty-ee10-maven-pluginを実行し、組み込みJettyを起動させます。以下のコマンドを実行してください。
$cd nablarch-example-http-messaging
$mvn jetty:run
本Exampleアプリケーションを起動するまでに必要な手順は以下になります。
- データベースのセットアップ及びエンティティクラスの作成
- アプリケーションのビルド
- Jetty 12の起動
これらの手順はJetty 12を起動するjetty:runを実行する際にすべて含まれていますが、個別に実行することもできます。
以下のコマンドを実行することでデータベースのセットアップ及びエンティティクラスの作成を行うことができます。
$mvn generate-resources
※gspプラグインをJava 17で実行するためにはJVMオプションの指定が必要ですが、そのオプションは.mvn/jvm.configで指定しています。
以下のコマンドを実行することでアプリケーションのビルドを行うことができます。
$mvn compile
※compileを実行するとデータベースのセットアップ及びエンティティクラスの作成処理も行われます。
src\test\java以下に配置している、テスト用クライアントクラスのmainメソッドを実行します。
- com.nablarch.example.client.ProjectClient
このクラスは、プロジェクト登録リクエストを二回発行します。 標準出力には、各リクエストに対するレスポンスコードが出力されます。
- リクエスト1:バリデーションエラーが発生する登録リクエスト(レスポンスコード:400)
- リクエスト2:正常に登録できる登録リクエスト(レスポンスコード:201)
IDEから実行するか、別のターミナルを開いて以下のコマンドを実行してください。
$cd c:\example\nablarch-example-http-messaging
$mvn test-compile
$mvn exec:java -Dexec.mainClass=com.nablarch.example.client.ProjectClient -Dexec.classpathScope=test
アプリケーションが正常に稼働している場合、標準出力に以下の内容が出力されます。
####400####
####201####
DBに登録された値は、H2のコンソールから確認してください。
-
https://www.h2database.com/html/download.html からH2をインストールしてください。
-
{インストールフォルダ}/bin/h2.bat を実行してください(コマンドプロンプトが開く)。
※h2.bat実行中はExampleアプリケーションからDBへアクセスすることができないため、Exampleアプリケーションを停止しておいてください。 -
ブラウザから http://localhost:8082 を開き、以下の情報でH2コンソールにログインしてください。 JDBC URLの{dbファイルのパス}には、
http_messaging_example.mv.dbファイルの格納ディレクトリまでのパスを指定してください。 JDBC URL:jdbc:h2:{dbファイルのパス}/http_messaging_example
ユーザ名:HTTP_MESSAGING_EXAMPLE
パスワード:HTTP_MESSAGING_EXAMPLE