15. マイクロサービスプロファイルを使用したWebOTX Uber JARの作成

15.1. 概要

WebOTX Application Server Express マイクロサービスプロファイル(以降、WebOTXマイクロサービスランタイムと表記)は、WebOTXプラットフォームにマイクロプロファイルのランタイムが含まれており、Uber JAR ファイルで提供します。
Uber JARとはJavaアプリケーションと依存するライブラリなどを1つのjarにアーカイブしたものです。
WebOTXマイクロサービスランタイムにマイクロサービスアプリケーションを配置したWebOTX Uber JARをコンテナ実行環境に持っていくだけで、マイクロサービスが利用可能になります。
また、コンテナ環境が整っていないマイクロサービスアプリケーションの開発環境でも、WebOTX Uber JARを直接起動して動作確認が可能です。

15.1.1. WebOTX Uber JAR生成ツール

アプリケーションとWebOTX Uber JARを作成する支援ツールとして、WebOTX Uber JAR生成ツールを利用します。
WebOTX Uber JAR生成ツールはMavenプロジェクトで作成するために必要な、WebOTXマイクロサービスMavenプラグインとWebOTXマイクロサービスMavenアーキタイプを提供します。WebOTXマイクロサービスランタイムとWebOTXマイクロサービスMavenプラグインおよび WebOTXマイクロサービスMavenアーキタイプは、Maven Central リポジトリに公開しています。
公開対象 GAV情報 説明
WebOTXマイクロサービスランタイム groupId com.nec.webotx WebOTX Uber JARのベースとなるランタイムです。WebOTXマイクロサービスMavenプラグインの処理内でMaven Central リポジトリより取得します。
artifactId webotx-micro
version 10.4
WebOTXマイクロサービスMavenプラグイン groupId com.nec.webotx WebOTX Uber JARおよびマイクロサービスパッケージの作成を行うMavenプラグインです。
artifactId ms-uberjar-maven-plugin
version 10.4
WebOTXマイクロサービスMavenアーキタイプ groupId com.nec.webotx WebOTX Uber JARおよびマイクロサービスパッケージの作成を行うMavenアーキタイプです。WebOTXマイクロサービスMavenプラグインを利用する為の設定ファイルやサンプルアプリケーションを同梱しています。
artifactId ms-uberjar-archetype
version 10.4

WebOTXマイクロサービスMavenアーキタイプを使用して作成したMavenプロジェクトで、アプリケーションの作成、WebOTX Uber JARの作成、コンテナの実行に必要なマイクロサービスパッケージの作成を行います。
マイクロサービスパッケージはコンテナイメージのビルドに必要なDockerfile、WebOTX Uber JARなどのファイル群です。

マイクロサービスパッケージ作成後、Dockerコマンドでビルドを行いコンテナイメージを作成します。
作成したコンテナイメージを各実行環境に配備することでWebOTX Application Serverが使用可能となります。

15.1.1.1. 前提条件
WebOTX Uber JARはMaven(バージョン3.6以降)を使用して作成します。
15.1.1.2. 機能概要
Mavenを使用してWebOTX Uber JARおよびマイクロサービスパッケージを作成します。
WebOTX Uber JARの作成
WebOTXマイクロサービスMavenプラグインの「package-uberjar」ゴールで、WebOTX Uber JARを作成します。
「package-uberjar」ゴールは[package-uberjarゴールの設定]に基づいて、次の機能を実行します。
マイクロサービスパッケージの作成
WebOTXマイクロサービスMavenプラグインの「package-docker」ゴールで、マイクロサービスパッケージを作成します。
「package-docker」ゴールは[package-dockerゴールの設定]に基づいて、次の機能を実行します。

「package-uberjar」ゴール、「package-docker」ゴールのデフォルトフェーズは共に「package」フェーズとなっています。「package」以降のフェーズを指定してMaven実行することで、WebOTX Uber JARおよびマイクロサービスパッケージを作成します。
15.1.1.3. 作成手順
新規に作成する方法は次の2種類です。 既存アプリケーションを、WebOTX Uber JAR作成用のMavenプロジェクトに移行する手順については[既存アプリケーションの移行]をご参照ください。

15.2. WebOTX Developerを利用して新規に作成

15.2.1. Maven実行環境の準備

WebOTX DeveloperにはMavenの開発環境が含まれていないため、最初に m2e(Eclipse Maven Integration)をインストールしてMavenの実行環境を整えます。
15.2.1.1. m2eのインストール
メニュー [ヘルプ] > 新規ソフトウェアのインストール を選択しインストール画面を表示します。
作業対象に「 http://download.eclipse.org/releases/2019-06/201906191000 」を入力してインストール可能なソフトウェアを表示します。
フィルタ入力項目に「m2e」と入力してソフトウェア一覧を絞り込み、「 m2e - Maven Integration for Eclipse 」をチェックして次へ をクリックします。


表示されたソフトウェアが「 m2e - Maven Integration for Eclipse 」であることを確認して、次へ をクリックします。


使用条件に同意して、終了 をクリックするとソフトウェアのインストールが開始されます。


証明書の承認画面が表示された場合は、表示された証明書をすべてチェックして、選択を承認 をクリックします。


インストールが完了すると、WebOTX Developerの再起動画面が表示されますので、 すぐに再始動 をクリックしてください。


再起動後に、インストールされているを確認します。
メニュー [ウィンドウ] > 設定 を選択し、 MavenInstallations をクリックして、リストにEMBEDDED が表示されていることを確認してください。


15.2.1.2. m2eプラグインの設定
m2eをインストールした時のMavenのローカルリポジトリパスの既定値は<ユーザホームフォルダ>\.m2\repository になっています。
ローカルリポジトリのパスの変更や、Proxyの設定が必要な場合はMavenのsettings.xmlファイルを作成して設定します。
m2eにsettings.xmlの設定を反映させるには、メニュー [ウィンドウ] > MavenUser Settings を選択し、User Settings 入力項目に作成したsettings.xmlのファイルパスを入力します。
settings.xmlについてはMaven公式サイトのsettings.xmlリファレンスを参照してください。


既にインストール済みのMaven環境を利用する場合は、上記のsettings.xmlのファイルパスの設定と、Mavenの実行ランタイムの登録を行います。
メニュー [ウィンドウ] > 設定 を選択し、 MavenInstallations の画面で、Addをクリックします。


Mavenランタイムの設定を行います。


Installationsの設定画面に登録したランタイム名が表示されるので、チェックボックスをチェックして 適用 をクリックします。


15.2.1.3. JRE設定の確認
メニュー [ウィンドウ] > 設定を選択し、 Javaインストール済みのJREで、使用するJava SEが表示されチェックされていることを確認してください。
複数のJava SEが混在する場合、有効にしたいものをONにします。また、意図したJava SEがリストに表示されていない場合、[追加...] をクリックして、Java SEのインストールフォルダを指定してください。

Caution
Java SEは、OpenJDK 8、OpenJDK 11、Oracle JDK 8、Oracle JDK 11をサポートします

15.2.2. Mavenプロジェクトの作成

15.2.2.1. 新規作成ウィザードの実行
メニュー[ファイル] > 新規その他 を選択し、新規ウィザード選択を表示します。
ウィザード選択で MavenMaven Project を選択し、次へをクリックします。

Maven ProjectウィザードのSelect project name and locationで、次へをクリックします。

15.2.2.2. WebOTXマイクロサービスMavenアーキタイプの選択
Maven ProjectウィザードのSelect an Archetypeで、WebOTXマイクロサービスMavenアーキタイプを選択します。
初めて作成するときはアーキタイプの一覧に表示されないため、Add Archetypeをクリックして追加します。

Maven ProjectウィザードのAdd Archetype画面で、WebOTXマイクロサービスMavenアーキタイプを追加します。
次の入力を行い、OK をクリックします。
入力項目 説明 設定値
Archetype Group Id 利用するWebOTXマイクロサービスMavenアーキタイプのgroupIdを指定します。 com.nec.webotx
Archetype Artifact Id 利用するWebOTXマイクロサービスMavenアーキタイプのartifactIdを指定します。 ms-uberjar-archetype
Archetype Version 利用するWebOTXマイクロサービスMavenアーキタイプのversionを指定します。 10.4

アーキタイプのリストから、登録したWebOTXマイクロサービスMavenアーキタイプを選択し、次へ をクリックします。

15.2.2.3. MavenプロジェクトのMaven GAVの設定
作成するMavenプロジェクトのMaven GAVを設定します。
次の入力を行い、終了 をクリックします。
入力項目 説明 設定値
Group Id 新規作成するMavenプロジェクトのgroupIdを指定します。 任意
Artifact Id 新規作成するMavenプロジェクトのartifactIdを指定します。 任意
Version 新規作成するMavenプロジェクトのversionを指定します。 任意

New Maven Projectウィザードが終了し、プロジェクトエクスプローラに作成したMavenプロジェクトが追加されます。
Mavenプロジェクトの src フォルダの配下にサンプルアプリケーションが配置されます。
Mavenプロジェクトの webotx-config フォルダに、WebOTXマイクロサービスMavenプラグインで使用するデフォルト環境設定ファイルが配置されます。

15.2.3. アプリケーションの作成

作成したMavenプロジェクト上でアプリケーションを実装します。
Memo
WebOTXマイクロサービスMavenアーキタイプにはサンプルアプリケーションのソースコードを配置しています。
必要に応じて削除・変更してご利用ください。
Memo
Uber JAR向けにJavaアプリケーションを作成する場合、コンパイルエラー等の問題を解決後に「コンテナ向けアプリケーション検証機能」を使用してUber JARで動作可能か否かの確認を行ってください。変更が必要な場合は対処を行ってください。

15.2.4. pom.xmlの編集

作成したMavenプロジェクト上のpom.xmlに、依存ライブラリやWebOTX Uber JAR、マイクロサービスパッケージの設定を行います。
WebOTX Uber JAR、マイクロサービスパッケージの設定方法については、[pom.xmlの設定]をご参照ください。
WebOTXマイクロサービスMavenアーキタイプを使用して作成したMavenプロジェクトには、以下の pom.xml が作成されます。

Memo
WebOTXマイクロサービスMavenアーキタイプのpom.xmlにはサンプルアプリケーション向けの依存ライブラリ(<dependency>タグ)およびMavenプラグイン(<plugin>タグ)を記述しています。
必要に応じて削除・変更してご利用ください。

15.2.5. ビルド実行

アプリケーションのビルド、WebOTXマイクロサービスランタイムをベースとしたWebOTX Uber JARおよびマイクロサービスパッケージの作成を行います。
プロジェクトエクスプローラで実行するMavenプロジェクトを右クリックして 実行 Maven install を選択します。

Memo
WebOTX Uber JAR作成(package-uberjarゴール)のみ、もしくはマイクロサービスパッケージの作成(package-dockerゴール)のみを単独で実行する場合は、 実行 実行の構成 を選択して、Mavenの構成を追加で、Goals 入力項目に以下のゴールを設定して実行してください。

15.2.5.1. 実行結果の確認
WebOTX Developerのコンソールに実行ログが出力されるのでエラーがないことを確認してください。
ログの最後に「BUILD SUCCESS」が出力されていれば正常に終了しています。

15.2.5.2. 出力ファイルの確認
出力ファイルは、デフォルトの設定ではtargetフォルダに出力しますが、pom.xmlの設定で出力先を変更することも可能です。

15.2.6. Uber JARの実行確認

15.2.6.1. javaコマンドで実行
次のコマンドを実行し、WebOTX Uber JARを起動します。
WebOTX Uber JARは起動時にWebOTX Uber JAR内のファイルを一時ディレクトリに展開しますが、 起動オプション --basedir を指定すると、WebOTX Uber JARを展開する場所を指定できます。
その他の起動オプションについては、[設定 > マイクロサービスプロファイル > WebOTX Uber JAR 環境変数] を参照してください。
> java -jar <WebOTX Uber JARファイル名>.jar --basedir <展開先ディレクトリ>
WebOTX Uber JARの実行を終了する場合は [CTRL]+Cで終了します。
Memo
Webサーバが利用するHTTP(s)プロトコルのポート番号のデフォルトは8080(HTTPSは8443)です。
実行マシンで既に同じポートを使用している場合は、config.propertiesで設定を変更するか、実行オプションで指定して、ポート番号を変更してください。
Memo
WebOTX Uber JARは、--basedirで指定したパスに、WebOTX Uber jarファイルに含まれている実行環境を展開して動作しています。 --basedirを指定しない場合は users¥<ユーザ>\AppData\Local\Temp 配下に一時的なフォルダを作成して展開します。 当該ディレクトリが停止後も残存している場合、特にディレクトリを固定化していない場合は、不要なファイルとして残り続けるため、削除する必要があります。 展開先のフォルダ情報は、実行ログに出力されるので確認してください。
>mkdir d:\work
>java -jar SampleAP-0.0.1-SNAPSHOT-micro.jar --basedir d:\work
展開先ディレクトリ d:\work
--basedirを指定しない場合
>java -jar SampleAP-0.0.1-SNAPSHOT-micro.jar
展開先ディレクトリ D:\Users\user\AppData\Local\Temp\webotx-micro-9654027332002318037
15.2.6.2. WebOTX Developerで実行
メニュー[実行] > 外部ツール外部ツールの構成 を選択し、外部ツール構成の画面で プログラム を選択して、リスト上部の新規追加アイコンをクリックします。

外部ツール構成の[メイン]タブで、次の設定を行います。 外部ツール構成の[共通]タブで、エンコードの設定を行います。 設定後 適用 をクリックしてください。設定後はこの画面で 実行 をクリックしてWebOTX Uber JARを実行します。

Caution
WebOTX Uber JARを停止はコンソールの停止アイコンで行いますが、停止しても、実行プロセスが残る場合があります。
この状態で再度実行すると、コンソールに次のエラーが出力されます。
>java -jar SampleAP-0.0.1-SNAPSHOT-micro.jar
java.lang.IllegalArgumentException: アプリケーションは既に起動しています [PID: 7016 ]
    at com.nec.webotx.micro.boot.loader.Launcher.checkMultipleStartup(Launcher.java:604)
    at com.nec.webotx.micro.boot.loader.Launcher.launch(Launcher.java:90)
    at com.nec.webotx.micro.boot.WebOTXMicroLauncher.main(WebOTXMicroLauncher.java:36)
    at com.nec.webotx.micro.WebOTXMicro.main(WebOTXMicro.java:23)

この場合は実行プロセスを確認して、プロセスを強制終了してください。 以下はWindowsの例です。
>jps
10984 Jps
11304 org.eclipse.equinox.launcher_1.5.400.v20190515-0925.jar
5272 SampleAP-0.0.1-SNAPSHOT-micro.jar

>taskkill /F /PID 5272
成功: PID 5272 のプロセスは強制終了されました。
15.2.6.3. WebOTX Uber JARのサンプルアプリケーションの接続確認
WebOTX Uber JARが起動されていることを、コンソールに出力されたメッセージから確認します。
  情報: Version 10.40.00.00 (build 20210402) ready in 29,839 (ms)
WebOTX Uber JARを起動してブラウザから次のURLの書式で接続します。
http://<ホストOSのIPアドレス>:8080/{artifactId}-{version}/parameter/query?param=ok
正常に接続されると ok が表示されます。

15.2.7. Uber JARのデバッグ

15.2.7.1. WebOTX Uber JARのデバッグを有効にする
WebOTX Uber JARのデバッグを有効にして実行するには、次のオプションを指定してください。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<デバッグポート番号>
通常はデバッグポート番号に4004を指定します。既に実行マシンで4004ポートが使用済みであれば変更してください。
15.2.7.2. WebOTX Developerでリモートデバッグ
デバッグを有効して実行中のWebOTX Uber JARに接続してデバッグを行うには、 メニュー[実行] > デバッグの構成 を選択し、 デバッグ構成の画面で リモートJava アプリケーション のデバッグ構成を設定して実行します。
Java アプリケーションのデバッグ構成の[接続]タブで、接続先情報の設定を行います。 デバッグ構成の[共通]タブで、エンコードの設定を行います。 設定後 適用 をクリックしてください。設定後はこの画面で デバッグ をクリックしてWebOTX Uber JARを実行します。

次にアプリケーションのソースにブレークポイントを設定し、ブラウザから次のURLの書式で接続します。
http://<ホストOSのIPアドレス>:8080/{artifactId}-{version}/parameter/query?param=ok
ブレークポイントの箇所で止まり、デバッグが可能になります。


15.3. Mavenコマンドを利用して新規に作成

WebOTXマイクロサービスMavenプラグインをコマンドベースで実行し、WebOTX Uber JARおよびマイクロサービスパッケージを作成する手順について説明します。

15.3.1. Mavenプロジェクトの作成

次のコマンドを実行し、WebOTXマイクロサービスMavenアーキタイプを利用して新規Mavenプロジェクトをカレントディレクトリに作成します。
> mvn archetype:generate -DarchetypeGroupId=com.nec.webotx -DarchetypeArtifactId=ms-uberjar-archetype -DarchetypeVersion=10.4 -DgroupId=com.sample -DartifactId=sample-app -Dversion=1.0-SNAPSHOT
指定するオプションは次の通りです。
オプション 説明 設定値
-DarchetypeGroupId 利用するWebOTXマイクロサービスMavenアーキタイプのgroupIdを指定します。 com.nec.webotx
-DarchetypeArtifactId 利用するWebOTXマイクロサービスMavenアーキタイプのartifactIdを指定します。 ms-uberjar-archetype
-DarchetypeVersion 利用するWebOTXマイクロサービスMavenアーキタイプのversionを指定します。 10.4
-DgroupId 新規作成するMavenプロジェクトのgroupIdを指定します。 任意
-DartifactId 新規作成するMavenプロジェクトのartifactIdを指定します。 任意
-Dversion 新規作成するMavenプロジェクトのversionを指定します。 任意

15.3.2. アプリケーションの作成

作成したMavenプロジェクト上でアプリケーションを実装します。
Memo
WebOTXマイクロサービスMavenアーキタイプにはサンプルアプリケーションのソースコードを配置しています。
必要に応じて削除・変更してご利用ください。
Memo
Uber JAR向けにJavaアプリケーションを作成する場合、コンパイルエラー等の問題を解決後に「コンテナ向けアプリケーション検証機能」を使用してUber JARで動作可能か否かの確認を行ってください。変更が必要な場合は対処を行ってください。

15.3.3. pom.xmlの編集

作成したMavenプロジェクト上のpom.xmlに、依存ライブラリやWebOTX Uber JAR、マイクロサービスパッケージの設定を行います。
WebOTX Uber JAR、マイクロサービスパッケージの設定方法については、[pom.xmlの設定]をご参照ください。
WebOTXマイクロサービスMavenアーキタイプを使用して作成したMavenプロジェクトには、以下の pom.xml が作成されます。

Memo
WebOTXマイクロサービスMavenアーキタイプのpom.xmlにはサンプルアプリケーション向けの依存ライブラリ(<dependency>タグ)およびMavenプラグイン(<plugin>タグ)を記述しています。
必要に応じて削除・変更してご利用ください。

15.3.4. ビルド実行

次のコマンドを実行し、アプリケーションのビルド、WebOTXマイクロサービスランタイムをベースとしたWebOTX Uber JARおよびマイクロサービスパッケージの作成を行います。
> mvn package
次のコマンドを実行することにより、WebOTX Uber JAR作成(package-uberjarゴール)のみ、もしくはマイクロサービスパッケージの作成(package-dockerゴール)のみを単独で実行することも可能です。

WebOTX Uber JAR作成のみ:
> mvn com.nec.webotx:ms-uberjar-maven-plugin:10.4:package-uberjar
マイクロサービスパッケージ作成のみ:
> mvn com.nec.webotx:ms-uberjar-maven-plugin:10.4:package-docker
15.3.4.1. 実行結果の確認
コンソールに実行ログが出力されるのでエラーがないことを確認してください。
ログの最後に「BUILD SUCCESS」が出力されていれば正常に終了しています。

15.3.4.2. 出力ファイルの確認
出力ファイルは、デフォルトの設定ではtargetフォルダに出力しますが、pom.xmlの設定で出力先を変更することも可能です。

15.3.5. Uber JARの実行確認

次のコマンドを実行し、WebOTX Uber JAR内のファイルを一時ディレクトリ(<展開先ディレクトリ>で指定したディレクトリ)に展開し起動します。
> java -jar <WebOTX Uber JARファイル名>.jar --basedir <展開先ディレクトリ>
WebOTX Uber JARが起動されていることを、コンソールに出力されたメッセージから確認します。
  情報: Version 10.40.00.00 (build 20210402) ready in 29,839 (ms)
サンプルアプリケーションの場合は、起動後Webブラウザ等で次のURLに接続します。WebOTX Uber JARの起動に成功した場合、「ok」の文字列を表示します。
http://<ホストOSのIPアドレス>:8080/{artifactId}-{version}/parameter/query?param=ok
WebOTX Uber JARの実行を終了する場合は [CTRL]+Cで終了します。

15.4. コンテナイメージの作成

コンテナエンジンに Docker を使用する場合のコンテナイメージの作成ついて説明します。 コンテナエンジンに Podman を使用する場合は、docker コマンドを podman コマンドに読み替えてください。 詳細については、使用するコンテナエンジン、コンテナオーケストレーションツールのドキュメントを参照してください。

15.4.1. コンテナイメージの作成

コンテナイメージの作成は次のとおりの手順で行います。

  1. マイクロサービスパッケージ(webotx-ms-package)をファイル転送ツールやコマンドを使用して、対象となるLinux環境の任意のフォルダに転送します。
  2. ホストOSにログイン名 root でログインします。
    $ login: root
  3. ファイル転送を行った任意のフォルダにCDコマンドで移動します。
    # cd <任意のフォルダ>/webotx-ms-package
  4. Dockerのコンテナイメージを作成します。以下のコマンドを実行します。
    イメージ名を指定する場合はDockerの規約に従ってください。 必要であればbuildコマンドの--build-argオプションでhttp_proxy、https_proxy、no_proxyにコンテナイメージ生成時に使用するプロキシサーバの情報を指定してください。
    # docker build -t <イメージ名> .
  5. コンテナイメージが生成されていることを確認します。 以下のコマンドを実行します。
    # docker images
    REPOSITORY TAG IMAGE ID CREATED
    <イメージ名> <タグ> ************ ** **** ago
    registry.access.redhat.com/rhel latest ************ ** **** ago
    (*) *** 部分の表記は環境によって異なります。

    生成時に指定した名前のイメージが表示されれば、生成完了です。

15.4.2. 動作確認

動作確認は次のとおりの手順で行います。

  1. ホストOSにログイン名 root でログインします。
    $ login: root
  2. コンテナを起動します。コンテナの環境変数OTX_LICENSEで製品の「ライセンスキー」を指定します。 また、コンテナ起動時にホスト8080番ポートへの通信をコンテナ8080番ポート(既定値)へ転送します。 以下のコマンドを実行します。
    # docker run -it -d -e OTX_LICENSE=<ライセンスキー> -p 8080:8080 <イメージ名>

    Caution
    指定する「ライセンスキー」は事前に購入していただく必要があります。

    Caution
    「8080番ポート」はホスト上で使用していないポート番号を指定してください。
    ポート番号が競合していないことを確認するには、以下のコマンドで確認できます。

    # ss -ant | grep 8080

    Memo
    デバッグを有効にする場合はJAVA_TOOL_OPTIONS にデバッグオプションを設定します。
    また、サービス用のポート番号に加えて、デバッグ用のポート番号もコンテナ外に公開してください。
    指定例は、以下のとおりです。

    # docker run -it -p 18080:8080 -p 14004:4004 -e JAVA_TOOL_OPTIONS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4004"  <イメージ名>
  3. 以下のコマンドを実行して、コンテナが起動していることを確認します。
    # docker ps
    CONTAINER ID IMAGE COMMAND CREATED
    537d3c548628 <イメージ名> "java -jar ・・・" 2 minutes ago
    
  4. サンプルアプリを利用して、コンテナで動作しているWebOTX Uber JARへ接続確認します。Webブラウザを起動し、次のURLを入力してください。
    http://[ホストOSのIPアドレス]:8080/{artifactId}-{version}/parameter/query?param=ok
    Webブラウザ上に「ok」の表示が確認できれば、正常に動作しています。

15.5. pom.xmlの設定

pom.xmlに<configuration>タグを記述することでWebOTXマイクロサービスMavenプラグインの動作を設定することができます。

15.5.1. configurationタグ記述箇所

<configuration>タグの指定方法には、主にプラグイン単位とゴール単位の2種類があります。
15.5.1.1. プラグイン単位
<plugin>タグ直下に指定した場合はプラグイン全体(全ゴール)に影響します。
記述例:
<plugin>
    <groupId>com.nec.webotx</groupId>
    <artifactId>ms-uberjar-maven-plugin</artifactId>
    <version>10.4</version>
    <executions>
        <execution>
            <goals>
                <goal>package-uberjar</goal>
                <goal>package-docker</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
    ※ここに設定を記述します。
    </configuration>
</plugin>
15.5.1.2. ゴール単位
<execution>タグ直下に指定した場合は<goals>に指定したゴールに対して影響します。
記述例:
<plugin>
    <groupId>com.nec.webotx</groupId>
    <artifactId>ms-uberjar-maven-plugin</artifactId>
    <version>10.4</version>
    <executions>
        <execution>
            <goals>
                <goal>package-uberjar</goal>
            </goals>
            <configuration>
            ※ここに設定を記述します。
            </configuration>
        </execution>
        <execution>
            <goals>
                <goal>package-docker</goal>
            </goals>
            <configuration>
            ※ここに設定を記述します。
            </configuration>
        </execution>
    </executions>
</plugin>

15.5.2. 設定一覧

WebOTXマイクロサービスMavenプラグインが持つ2つのゴール毎に説明を記載します。
15.5.2.1. package-uberjarゴールの設定
package-uberjarゴールでは次のconfigurationが使用可能です。
webotxUberJar
名称 webotxUberJar
説明 WebOTX Uber JARの基盤となるWebOTXマイクロサービスランタイムのArtifactItem(groupId、artifactId、version)を指定します。
製品バージョンアップ等によりArtifactItemの変更が必要な場合に設定します。
既定値 groupId: com.nec.webotx
artifactId: webotx-micro
version: 10.4
設定例 バージョンアップによりversion:10.41を指定する場合:
<webotxUberJar>
    <artifactItem>
        <groupId>com.nec.webotx</groupId>
        <artifactId>webotx-micro</artifactId>
        <version>10.41</version>
    </artifactItem>
</webotxUberJar>
userApPath
名称 userApPath
説明 WebOTX Uber JARに配備するアプリケーション(warファイル)の絶対パスを指定します。既定値はWebOTXマイクロサービスMavenアーキタイプに予め配置しているサンプルアプリケーションのビルド成果物となっています。
既定値 ${project.build.directory}/${project.build.finalName}.war
設定例 プロジェクト外のアプリケーションを指定する場合:
<userApPath>C:\xxx\yyy\zzz\app.war</userApPath>
dependJars
名称 dependJars
説明 WebOTX Uber JARに配備するアプリケーションが依存する外部ライブラリのArtifactItem(groupId、artifactId、version)を指定します。複数指定可能です。
Mavenリポジトリに存在しないライブラリを指定する際は、deployFilesを使用してください。
既定値 なし
設定例 2つの外部ライブラリを指定する場合:
<dependJars>
    <artifactItem>
        <groupId>xxx.xxx.xxx</groupId>
        <artifactId>lib1</artifactId>
        <version>1.0.0</version>
    </artifactItem>
    <artifactItem>
        <groupId>yyy.yyy.yyy</groupId>
        <artifactId>lib2</artifactId>
        <version>2.0.0</version>
    </artifactItem>
</dependJars>
jdbcDriverPath
名称 jdbcDriverPath
説明 アプリケーション内で使用するJDBCドライバ(jarファイル)の絶対パスを指定します。複数指定可能です。
Mavenリポジトリに存在するJDBCドライバを指定する際は、jdbcDriverGAVを使用してください。
既定値 なし
設定例 JDBCドライバ「jdbc-driver.jar」を指定する場合:
<jdbcDriverPath>
    <path>
        C:\xxx\yyy\zzz\jdbc-driver.jar
    </path>
</jdbcDriverPath>
jdbcDriverGAV
名称 jdbcDriverGAV
説明 アプリケーション内で使用するJDBCドライバ(jarファイル)のArtifactItem(groupId、artifactId、version)を指定します。複数指定可能です。
Mavenリポジトリに存在しないJDBCドライバを指定する際は、jdbcDriverPathを使用してください。
既定値 なし
設定例 groupId:xxx.xxx.xxx、artifactId:yyy、version:1.0のJDBCドライバを指定する場合:
<jdbcDriverGAV>
    <artifactItem>
        <groupId>xxx.xxx.xxx</groupId>
        <artifactId>yyy</artifactId>
        <version>1.0</version>
    </artifactItem>
</jdbcDriverGAV>
jdkVersion
名称 jdkVersion
説明 WebOTX Uber JARの実行環境で使用するJDKのバージョン番号を指定します。「8」もしくは「11」が指定可能です。
Caution
package-uberjarゴール・package-dockerゴールを連続で実行する場合は、package-dockerゴールのconfiguration「jdk」との齟齬がないようご注意ください。
既定値 8
設定例 JDKバージョン:11を指定する場合:
<jdkVersion>11</jdkVersion>
configPropertiesPath
名称 configPropertiesPath
説明 domain.xml設定情報ファイルの絶対パスを指定します。
domain.xml設定情報ファイルはdomain.xmlの更新情報を設定するプロパティファイルです。
domain.xmlは、WebOTX Uber JARの動作を設定するファイルで、WebOTXマイクロサービスランタイム内に配置しています。
既定値はWebOTXマイクロサービスMavenアーキタイプに予め配置している「default-config.properties」となります。
既定値 ${project.basedir}/webotx-config/default-config.properties
設定例 ファイル「config.properties」を指定する場合:
<configPropertiesPath>C:\xxx\yyy\zzz\config.properties</configPropertiesPath>
domain.xml設定情報ファイル
domain.xml設定情報ファイルに定義可能なプロパティは次の通りです。
プロパティ名 説明 既定値
server.network-config.network-listeners.network-listener.http-listener-1.port Webサーバが利用するHTTPプロトコルのポート番号を指定します。
UNIX系OSにおいて、WebOTX運用管理ユーザをroot以外に設定した場合、OSの制約上1024番以下のポート番号は使用できません。その場合は、1025番以上の番号を設定してください。
8080
server.network-config.network-listeners.network-listener.http-listener-2.port Webサーバが利用するHTTPSプロトコルのポート番号を指定します。
UNIX系OSにおいて、WebOTX運用管理ユーザをroot以外に設定した場合、OSの制約上1024番以下のポート番号は使用できません。その場合は、1025番以上の番号を設定してください。
8443
server.java-config.system-jvm-options
server.java-config.system-jvm-options.'任意の文字列'
システムが使用するJava VMオプションを指定します。
複数指定を行う場合はカンマ(,)区切りで指定します。
"-Dlog4j2-as.logsdir=XXX"(XXXは任意の文字列)の文字列を指定した場合、 domain.xmlの<system-jvm-options>の要素に設定している文字列から"^-Dlog4j2-as.logsdir=.*"の正規表現に 合致する要素を検索して、その要素に設定ファイルの値を設定します。
"-Dlog4j2-as.logsdir=XXX"(XXXは任意の文字列)の文字列を設定していない場合、 "-Dlog4j2-as.logsdir=${com.nec.webotx.instanceRoot}/logs"のデフォルト値を設定します。
カンマ(,)を含むJava VMオプションを指定する場合は、プロパティ名の末尾に任意の文字列を付与し、異なるプロパティとして設定してください。
任意の文字列を付与したプロパティ名では、カンマ(,)区切りを複数指定扱いとせず、全体を1つの値として扱います。
なし
server.network-config.network-listeners.network-listener.http-listener-1.enabled http-litener-1のリスナの有効/無効化を指定します。
TRUE
server.network-config.network-listeners.network-listener.http-listener-2.enabled http-litener-2のリスナの有効/無効化を指定します。
TRUE
server.network-config.network-listeners.network-listener.http-listener-1.protocol プロトコルの参照先1を指定します。
http-protocol
server.network-config.network-listeners.network-listener.http-listener-2.protocol プロトコルの参照先2を指定します。
https-protocol
以下、JDBCデータソースに関する設定です。
[必須]記載の項目はJDBCデータソースを設定する際には必須の項目となります。
また、プロパティ名の'JNDI名'にはJNDIサーバへの登録名(JDBCデータソースを一意に表す名前)を指定します。
server.resources.jdbc-datasource.'JNDI名'.jndiName JNDIサーバへの登録名(JDBCデータソースを一意に表わす名前)を指定します。[必須] なし
server.resources.jdbc-datasource.'JNDI名'.dataSourceType JDBCドライバベンダが提供するインタフェースの種別を表わす文字列を指定します。
値の有効範囲:
JDBCEX_Oracle OracleのJDBC Optional Package API
JDBC JDBC API
JDBCEX_DB2 DB2のJDBC Optional Package API
JDBCEX_MSSqlServer Microsoft SQL ServerのJDBC Optional Package API
JDBCEX_Sybase SybaseのJDBC Optional Package API
JDBCEX_Cloudscape CloudscapeのJDBC Optional Package API
JDBCEX_PostgreSQL PostgreSQLのJDBC Optional Package API
JDBCEX_SequeLink SequeLinkのJDBC Optional Package API
JDBCEX_Derby Apache DerbyのJDBC Optional Package API
JDBCEX_CoreSaver CoreSaverのJDBC Optional Package API
JDBCEX_Oracle
server.resources.jdbc-datasource.'JNDI名'.jdbcMajorVersion JDBCドライバがサポートするJDBCのメジャーバージョン番号を指定します。
値の有効範囲:
2
3
4
4
server.resources.jdbc-datasource.'JNDI名'.jdbcMinorVersion JDBCドライバがサポートするJDBCのマイナーバージョン番号を指定します。
値の有効範囲:
0
1
0
server.resources.jdbc-datasource.'JNDI名'.useJTA JTAと連携するかどうかを表わすブール値を指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.description JDBCデータソースの説明(任意の文字列)を指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.dataSourceName JDBC URLまたはデータベース名、データソース名を指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.userName データベースと接続するためのユーザ名を指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.password データベースと接続するためのパスワードを指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.serverName データベースサーバのサーバ名を指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.portNumber データベースサーバのポート番号を指定します。 dataSourceTypeの設定値毎に既定値が異なります。
JDBCEX_Oracle なし
JDBC なし
JDBCEX_DB2 50000
JDBCEX_MSSqlServer 1433
JDBCEX_Sybase 6001
JDBCEX_Cloudscape なし
JDBCEX_PostgreSQL 5432
JDBCEX_SequeLink 19996
JDBCEX_Derby 1527
JDBCEX_CoreSaver 6100
server.resources.jdbc-datasource.'JNDI名'.use-jmx-agent JMXエージェント上でロードするかどうかを指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.use-all-ejb-processgroups 全てのEJBプロセスグループで使用するかどうかを指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.minPoolSize プールに常時保持されるコネクション数を指定します。
0を設定した場合、プール管理を行いません。
4
server.resources.jdbc-datasource.'JNDI名'.maxPoolSize プールに保持される最大のコネクション数を指定します。
0を設定した場合、制限なしとなります。
0
server.resources.jdbc-datasource.'JNDI名'.initialPoolSize プール生成時に作成されるコネクション数を指定します。 0
server.resources.jdbc-datasource.'JNDI名'.maxIdleTime コネクションが未使用状態のままプールされ続ける時間を指定します。(単位:秒)
0を設定した場合、アイドル時間監視は行われません。
0
server.resources.jdbc-datasource.'JNDI名'.propertyCycle 動作中のJDBCデータソースが使用するプロパティ値を強制的に変更するまでの待ち時間を指定します。(単位:秒)
0を設定した場合、待ち合わせは行われません。
0
server.resources.jdbc-datasource.'JNDI名'.resetAllConnectionsOnFailure コネクション障害発生時にプールの全コネクションを一括破棄するかどうかを表わすブール値を指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.reconnectInitialPool 初期接続の接続リトライを行うかどうかを表すブール値を指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.waitFreeConnTimeout 最大プール数のJDBCコネクションが全て使用中の場合に、空きコネクションが取得できるまで待ち合わせる時間を指定します。(単位:秒) 15
server.resources.jdbc-datasource.'JNDI名'.maxStatements ステートメントの最大プール数を指定します。
0を設定した場合、プール管理は行われません。
0
server.resources.jdbc-datasource.'JNDI名'.loginTimeout コネクション接続時のタイムアウト時間を指定します。(単位:秒)
0を設定した場合、タイマ監視は行われません。
0
server.resources.jdbc-datasource.'JNDI名'.connectRetryMax 接続失敗時のリトライ回数を指定します。
0を設定した場合、リトライは行われません。
0
server.resources.jdbc-datasource.'JNDI名'.connectRetryInterval 接続失敗時のリトライ間隔を指定します。(単位:秒) 10
server.resources.jdbc-datasource.'JNDI名'.defaultAutoCommit コネクション払い出し直後の自動コミットの値を指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.shrinkDelayTime コネクション解放までの待ち合わせ時間を指定します。(単位:秒) 15
server.resources.jdbc-datasource.'JNDI名'.queryTimeout java.sql.Statementに指定するクエリのタイムアウト時間を指定します。(単位:秒)
0を設定した場合、タイムアウトは発生しません。
0
server.resources.jdbc-datasource.'JNDI名'.readTimeout ソケットの読み取りタイムアウト時間を指定します。(単位:秒)
0を設定した場合、タイムアウトは発生しません。
0
server.resources.jdbc-datasource.'JNDI名'.transactionIsolationLevel トランザクション遮断レベルを指定します。
0を設定した場合、トランザクション遮断レベルを設定しません。
0
server.resources.jdbc-datasource.'JNDI名'.checkGarbageOption コネクションのガベージコレクト機能の動作オプションを指定します。
値の有効範囲:
none ガベージコレクトの監視なし
close JDBCコネクションの切断
rollback JDBCコネクションの切断とロールバック
debug JDBCコネクションの切断とロールバック。リークに関する情報をログ出力。
none
server.resources.jdbc-datasource.'JNDI名'.checkGarbageInterval System.gc()を呼び出す間隔を指定します。(単位:秒)
0が設定された場合、または、checkGarbageOptionの値がrollbackまたはdebugでない場合は、gc()を呼び出しません。
0
server.resources.jdbc-datasource.'JNDI名'.checkServerOption データベースサーバの状態監視オプションを指定します。
値の有効範囲:
none データベースサーバの監視なし
monitor 定期的にデータベースサーバの状態を確認
method JDBCコネクションを払い出すたびにデータベースサーバの状態を確認
none
server.resources.jdbc-datasource.'JNDI名'.checkServerInterval データベースサーバの状態監視間隔を指定します。(単位:秒) 180
server.resources.jdbc-datasource.'JNDI名'.checkServerCommand データベースサーバの状態監視コマンドとして使用するSQL命令を指定します。 commit
server.resources.jdbc-datasource.'JNDI名'.useOneConnectionPerTransaction JTAのトランザクション毎に1つの物理コネクションを使用するかどうかを指定します。
値の有効範囲:
TRUE
FALSE
FALSE
server.resources.jdbc-datasource.'JNDI名'.useDatabaseCluster データベースのクラスタ構成サポート機能の使用有無を指定します。
値の有効範囲:
TRUE
FALSE
FALSE
server.resources.jdbc-datasource.'JNDI名'.useMultiUsersPerTransaction JTAのトランザクション内で、接続先が同じデータベースの、複数ユーザのJDBCコネクションを使用するかどうかを表すブール値を指定します。
値の有効範囲:
TRUE
FALSE
FALSE
server.resources.jdbc-datasource.'JNDI名'.clusterPoolOption コネクションプールのクラスタ動作オプションを指定します。
値の有効範囲:
none コネクションプールのクラスタ動作なし
roundrobin 複数のコネクションプールをラウンドロビンに使用する
standby 障害検出時にコネクションプールを切り替える
none
server.resources.jdbc-datasource.'JNDI名'.clusterPoolNames コネクションプールのクラスタ対象のJDBCデータソース名リストを指定します。
JDBCデータソース名が複数ある場合は、カンマ(,)区切りの文字列で指定します。
例: jdbc/DB1,jdbc/DB2
なし
server.resources.jdbc-datasource.'JNDI名'.validAllClusterConnectionsOnFailure 障害時に全てのデータベースと再接続を試みるかどうかを表すブール値を指定します。
値の有効範囲:
TRUE
FALSE
FALSE
server.resources.jdbc-datasource.'JNDI名'.clusterPoolWeight クラスタ機能のラウンドロビン呼び出しで、データベースサーバを連続して呼び出す回数を指定します。 1
server.resources.jdbc-datasource.'JNDI名'.maxSqlRankingCount SQLランキング情報で、ログに出力するランキングの数の上限を指定します。
値の有効範囲:
0-9999
20
server.resources.jdbc-datasource.'JNDI名'.maxSqlTraceLength SQLランキング情報で、ログに出力するSQL文字列の長さの上限(単位:バイト)を指定します。
値の有効範囲:
5-1000000
1024
server.resources.jdbc-datasource.'JNDI名'.wrapStatement java.sql.StatementクラスをWebOTXの実装クラスでラップするかどうかを指定します。
値の有効範囲:
TRUE
FALSE
FALSE
server.resources.jdbc-datasource.'JNDI名'.iPXdaConfigDirectoryName 定義ファイルの格納ディレクトリ名を指定します。 $INSTANCE_ROOT/config/iPXda
server.resources.jdbc-datasource.'JNDI名'.iPXdaConfigFileName 動作環境定義ファイル名を指定します。 DataAccessEnvConfig.xml
server.resources.jdbc-datasource.'JNDI名'.iPXdaInvokeConfigFileName トランザクション定義ファイル名を指定します。 DataAccessTrnsConfig.xml
server.resources.jdbc-datasource.'JNDI名'.iPXdaOptionConfigFileName オプション定義ファイル名を指定します。 AAT.properties
server.resources.jdbc-datasource.'JNDI名'.driverVenderProperties JDBCドライバの独自プロパティを指定します。
JDBCドライバの独自プロパティの名前と値の組み合わせを複数指定する場合は、カンマ(,)区切りの文字列で指定します。
例: property1=value1,property2=value2
なし
server.resources.jdbc-datasource.'JNDI名'.property.jdbcDriverName データソースタイプがJDBCの場合にロードされる、JDBCドライバのクラス名を指定します。
自動設定
server.resources.jdbc-datasource.'JNDI名'.property.networkProtocol データベースとの通信プロトコルを表わす文字列を指定します。 なし
server.resources.jdbc-datasource.'JNDI名'.property.useStaticPool JDBCコネクションの共有範囲を表わすブール値を指定します。
値の有効範囲:
TRUE 同一プロセス内のJDBCデータソース間でJDBCコネクションを共有します。
FALSE JDBCデータソースのインスタンス間でJDBCコネクションを共有しません。
TRUE
server.resources.jdbc-datasource.'JNDI名'.property.cursorMode データベースカーソルの利用有無を表わす文字列を指定します。
値の有効範囲:
cursor データベースカーソルを利用します。
direct データベースカーソルを利用しません。
cursor
server.resources.jdbc-datasource.'JNDI名'.property.characterEncoding 文字列引数を送信する際の変換方法を表わす文字列を指定します。
値の有効範囲:
Unicode Unicodeの文字列をそのまま送信します。
Default データベースのデフォルトのcharacter encodingに従って変換した文字列を送信します。
Default
server.resources.jdbc-datasource.'JNDI名'.property.logLevel JDBCデータソースがAPサーバプロセス外で動作する際のログ出力レベルを指定します。
値の有効範囲:
info 動作に関する重要な情報を標準出力に出力します。
debug 動作に関する主な情報を標準出力に出力します。
trace トレース情報を標準出力に出力します。
test 全ての情報を標準出力に出力します。
none ログを全く出力しません。
info
server.resources.jdbc-datasource.'JNDI名'.property.autoRecoveryOnOnePhaseCommit 2フェーズコミットで、dataSourceTypeの値がJDBCであるコネクションに対するコミットが失敗した場合に、 トランザクション全体を自動的にロールバックするかどうかを表わすブール値を指定します。
値の有効範囲:
TRUE トランザクション全体を自動的にロールバックします。
FALSE トランザクションの完了処理を保留します。
TRUE
server.resources.jdbc-datasource.'JNDI名'.property.jndiProviderUrl JNDIプロバイダのURLを指定します。clusterPoolOptionがnone以外で、リモートのJNDIサーバと接続する場合に指定します。
例:corbaname://hostname1
なし
server.resources.jdbc-datasource.'JNDI名'.property.asyncCloseOnFailure 無応答障害など、復旧に時間がかかる障害発生時に、時間がかかるコネクションのクローズ処理を、アプリケーションの動作スレッドとは別のスレッドで非同期に行うかどうかのブール値を指定します。
値の有効範囲:
TRUE
FALSE
TRUE
server.resources.jdbc-datasource.'JNDI名'.property.asyncCloseEnableTime 復旧に時間がかかる障害とみなす時間(単位:秒)を指定します。 60
preStartCmdsConfPath
名称 preStartCmdsConfPath
説明 WebOTX Uber JARがドメイン起動前に実行する任意のコマンドを羅列したファイルの絶対パスを指定します。
ファイルフォーマットや記載可能なコマンドについては[設定 > マイクロサービスプロファイル > WebOTX Uber JAR 環境変数]を参照してください。
既定値 なし
設定例 ファイル「pre-start-commands.conf」を指定する場合:
<preStartCmdsConfPath>C:\xxx\yyy\zzz\pre-start-commands.conf</preStartCmdsConfPath>
postStartCmdsConfPath
名称 postStartCmdsConfPath
説明 WebOTX Uber JARがドメイン起動後に実行する任意のコマンドを羅列したファイルの絶対パスを指定します。
ファイルフォーマットや記載可能なコマンドについては[設定 > マイクロサービスプロファイル > WebOTX Uber JAR 環境変数]を参照してください。
既定値 なし
設定例 ファイル「post-start-commands.conf」を指定する場合:
<postStartCmdsConfPath>C:\xxx\yyy\zzz\post-start-commands.conf</postStartCmdsConfPath>
postDeployCmdsConfPath
名称 postDeployCmdsConfPath
説明 WebOTX Uber JARがアプリケーション配備後に実行する任意のコマンドを羅列したファイルの絶対パスを指定します。
ファイルフォーマットや記載可能なコマンドについては[設定 > マイクロサービスプロファイル > WebOTX Uber JAR 環境変数]を参照してください。
既定値 なし
設定例 ファイル「post-deploy-commands.conf」を指定する場合:
<postDeployCmdsConfPath>C:\xxx\yyy\zzz\post-deploy-commands.conf</postDeployCmdsConfPath>
keystoreJksPath
名称 keystoreJksPath
説明 SSL/TLS通信に必要な証明書や鍵を含んだファイル(キーストア)の絶対パスを指定します。
ユーザ独自の証明書を使用する際は必須の設定となります。
既定値 WebOTX既定のキーストア
設定例 ファイル「keystore.jks」を指定する場合:
<keystoreJksPath>C:\xxx\yyy\zzz\keystore.jks</keystoreJksPath>
cacertsJksPath
名称 cacertsJksPath
説明 SSL/TLS通信に必要なクライアント証明書を含んだファイル(トラストストア)の絶対パスを指定します。
双方向認証でユーザ独自の証明書を使用する際は必須の設定となります。
既定値 WebOTX既定のトラストストア
設定例 ファイル「cacerts.jks」を指定する場合:
<cacertsJksPath>C:\xxx\yyy\zzz\cacerts.jks</cacertsJksPath>
policyConfPath
名称 policyConfPath
説明 セキュリティポリシーを記述したファイルの絶対パスを指定します。
アプレット (またはセキュリティマネージャの下で動作しているアプリケーション) が、 ファイルの読み書きなど、セキュリティ保護された操作を行う為には、 その操作を行う為にアクセス権を付与する必要があります。
必要に応じて、追加するセキュリティポリシーを記述したファイルを指定してください。

ポリシーファイルの記述例
// Grant everyone the following permission:
grant {
    permission java.io.FilePermission "/tmp/*", "read,write";
};
既定値 なし
設定例 ファイル「policy.conf」を指定する場合:
<policyConfPath>C:\xxx\yyy\zzz\policy.conf</policyConfPath>
deployFiles
名称 deployFiles
説明 WebOTX Uber JAR内に任意のファイルを配置する際に、配置元および配置先のパスを指定します。
配置元(src)には絶対パスを指定します。
配置先(dst)には、WebOTX Uber JAR内の「OTX-INF\runtime\」を起点とした相対パスを指定します。
WebOTX Uber JAR内のディレクトリ構成については[リファレンス > ファイル・ディレクトリ一覧 > インストールディレクトリのディレクトリ構成]をご参照ください。
既定値 なし
設定例 WebOTX Uber JARに配備するアプリケーションが依存する外部ライブラリ「foo.jar」を配置する場合:
<deployFiles>
    <deployInfo>
        <src>C:\xxx\yyy\zzz\foo.jar</src>
        <dst>WebOTX\domains\domain1\lib\foo.jar</dst>
    </deployInfo>
</deployFiles>
uberjarName
名称 uberjarName
説明 WebOTX Uber JARのファイル名(拡張子(.jar)を除く)を指定します。

Caution
package-dockerゴールにも同名の設定が存在します。
package-uberjarゴール・package-dockerゴールを連続で実行する、且つconfigurationをゴール単位に指定する場合は、同一のファイル名を指定してください。
既定値 ${artifactId}-${version}-micro
設定例 WebOTX Uber JARファイル名を「micro-uber.jar」とする場合:
<uberjarName>micro-uber</uberjarName>
outputDirectory
名称 outputDirectory
説明 WebOTX Uber JARを出力するディレクトリの絶対パスを指定します。
既定値 ${project.build.directory}
設定例 出力先ディレクトリを「C:\xxx\yyy\zzz」とする場合:
<outputDirectory>C:\xxx\yyy\zzz</outputDirectory>
15.5.2.2. package-dockerゴールの設定
package-dockerゴールでは次のconfigurationが使用可能です。
dockerfilePath
名称 dockerfilePath
説明 作成するマイクロサービスパッケージに格納するDockerfileを指定します。
既定値はWebOTXマイクロサービスMavenアーキタイプに予め配置している、WebOTX運用管理ユーザを「asadm」として設定する「default-Dockerfile-user」となります。
WebOTX運用管理ユーザをrootとして設定する場合は、WebOTXマイクロサービスMavenアーキタイプに予め配置している「default-Dockerfile-root」を指定してください。
なお、独自で作成したDockerfileを指定することも可能です。
既定値 ${project.basedir}/webotx-config/default-Dockerfile-user
設定例 WebOTX運用管理ユーザをrootとして設定する場合:
<dockerfilePath>${project.basedir}/webotx-config/default-Dockerfile-root</dockerfilePath>
予約語
Dockerfile内では次の予約語が使用可能です。
予約語 説明
%%%BASE_IMAGE%%% DockerfileのFROMに指定するベースイメージです。
configuration「baseImage」の設定値に置換します。
%%%INSTALL_PACKAGES%%% WebOTX Uber JARが利用するパッケージのインストールコマンド群です。
configuration「baseImage」の設定値に応じて次の文字列に置換します。
  • 末尾が「ubi」の場合
    RUN yum -y --disableplugin=subscription-manager install \
    findutils \
    grep \
    hostname \
    iproute \
    libselinux-utils \
    procps-ng \
    tar && \
    yum --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*
    
  • 末尾が「ubi7/ubi-minimal」の場合
    RUN microdnf -y install \
    shadow-utils \
    findutils \
    grep \
    hostname \
    iproute \
    libselinux-utils \
    procps-ng \
    tar && \
    microdnf clean all && \
    rm -rf /var/cache/yum/*
    
  • 末尾が「ubi8/ubi-minimal」の場合
    RUN microdnf -y --disableplugin=subscription-manager install \
    shadow-utils \
    findutils \
    grep \
    hostname \
    iproute \
    libselinux-utils \
    procps-ng \
    tar && \
    microdnf --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*
    
%%%INSTALL_JDK%%% JDKのインストールコマンド群です。
configuration「jdk」およびconfiguration「baseImage」の設定値に応じて次の文字列に置換します。
  • 「jdk」が「8」、「baseImage」の末尾が「ubi」の場合
    RUN yum -y --disableplugin=subscription-manager install java-1.8.0-openjdk-devel && \
    yum --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」が「8」、「baseImage」の末尾が「ubi7/ubi-minimal」の場合
    RUN microdnf -y install java-1.8.0-openjdk-devel && \
    microdnf clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」が「8」、「baseImage」の末尾が「ubi8/ubi-minimal」の場合
    RUN microdnf -y --disableplugin=subscription-manager install java-1.8.0-openjdk-devel && \
    microdnf --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」が「11」、「baseImage」の末尾が「ubi」の場合
    RUN yum -y --disableplugin=subscription-manager install java-11-openjdk-devel && \
    yum --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」が「11」、「baseImage」の末尾が「ubi7/ubi-minimal」の場合
    RUN microdnf -y install java-11-openjdk-devel && \
    microdnf clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」が「11」、「baseImage」の末尾が「ubi8/ubi-minimal」の場合
    RUN microdnf -y --disableplugin=subscription-manager install java-11-openjdk-devel && \
    microdnf --disableplugin=subscription-manager clean all && \
    rm -rf /var/cache/yum/*                            
    
  • 「jdk」がjdk(tar.gzファイル)の絶対パス指定の場合
    ADD [jdkファイル名] /usr/java/
    RUN ln -sr /usr/java/* /usr/java/default
    ENV PATH /usr/java/default/bin:$PATH
    
%%%UBERJAR_NAME%%% マイクロサービスパッケージに格納するWebOTX Uber JARのファイル名です。
configuration「uberjarName」の設定値に置換します。
baseImage
名称 baseImage
説明 コンテナイメージを生成する際のベースイメージを指定します。
設定した値はマイクロサービスパッケージに格納するDockerfileの編集に使用します。
既定値 registry.access.redhat.com/ubi8/ubi
設定例 ubi7/ubi-minimalを指定する場合:
<baseImage>registry.access.redhat.com/ubi7/ubi-minimal</baseImage>
jdk
名称 jdk
説明 コンテナで使用するJDKを指定します。
OpenJDK 8を使用する場合は「8」、OpenJDK 11を使用する場合は「11」、Oracle JDKを使用する場合はJDK(tar.gzファイル)の絶対パスを指定します。
設定した値はマイクロサービスパッケージに格納するDockerfileの編集に使用します。
さらに、Oracle JDK(tar.gzファイル)の絶対パスを指定した場合は、指定したJDKをマイクロサービスパッケージに格納します。
Caution
package-uberjarゴール・package-dockerゴールを連続で実行する場合は、package-uberjarゴールのconfiguration「jdkVersion」との齟齬がないようご注意ください。
既定値 8
設定例 Oracle JDK 11を指定する場合:
<jdk>C:\xxx\yyy\zzz\jdk-11.0.10_linux-x64_bin.tar.gz</jdk>
uberjarPath
名称 uberjarPath
説明 マイクロサービスパッケージに格納するWebOTX Uber JARのコピー元を絶対パスで指定します。

Caution
package-uberjarゴール・package-dockerゴールを連続で実行する場合は、 package-uberjarゴールのconfiguration「outputDirectory」と同値を指定してください。
既定値 ${project.build.directory}
設定例 コピー元ディレクトリを「C:\xxx\yyy\zzz」とする場合:
<uberjarPath>C:\xxx\yyy\zzz</uberjarPath>
uberjarName
名称 uberjarName
説明 マイクロサービスパッケージに格納するWebOTX Uber JARのファイル名(拡張子(.jar)を除く)を指定します。

Caution
package-uberjarゴールにも同名の設定が存在します。
package-uberjarゴール・package-dockerゴールを連続で実行する、且つconfigurationをゴール単位に指定する場合は、同一のファイル名を指定してください。
既定値 ${artifactId}-${version}-micro
設定例 WebOTX Uber JARファイル名を「micro-uber.jar」とする場合:
<uberjarName>micro-uber</uberjarName>
outputDirectory
名称 outputDirectory
説明 作成するマイクロサービスパッケージを出力するディレクトリの絶対パスを指定します。
既定値 ${project.build.directory}
設定例 出力先ディレクトリを「C:\xxx\yyy\zzz」とする場合:
<outputDirectory>C:\xxx\yyy\zzz</outputDirectory>

15.6. 既存アプリケーションの移行

既存アプリケーションのプロジェクトをWebOTX Uber JAR作成用のMavenプロジェクトに移行する手順について説明します。

15.6.1. JAVAプロジェクトで作成したアプリケーション

既存JAVAプロジェクト(Ant等でコンパイルするよう構成したプロジェクト)をWebOTX Uber JAR作成用のMavenプロジェクトに移行する手順です。
  1. コンテナ向けプリケーション検証を行います。
    Memo
    Uber JAR向けにJavaアプリケーションを作成する場合、コンパイルエラー等の問題を解決後に「コンテナ向けアプリケーション検証機能」を使用してUber JARで動作可能か否かの確認を行ってください。変更が必要な場合は対処を行ってください。
  2. WebOTX Developerにて、既存プロジェクトをMavenプロジェクトに変換します。
    既存プロジェクトの右クリックメニュー[構成] > [Convert to Maven Project]を実行してください。
  3. プロジェクトディレクトリ直下に作成されるpom.xmlを編集します。
  4. 前項で[pom.xmlの設定]を参照して設定した内容に従い、必要なファイルを配置します。

依存ライブラリが接続先のMavenリポジトリ(Maven Central リポジトリやプライベートリポジトリ、ローカルリポジトリ等)に存在しない場合は、mvnコマンドを利用して依存ライブラリをユーザ開発環境のMavenリポジトリに配置することで、<dependency>タグにより参照することが可能です。

一例として、依存ライブラリをローカルリポジトリに配置する場合は次のコマンドを実行します。
mvn install:install-file -Dfile=<配置するライブラリファイルパス> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=jar
指定するオプションは次の通りです。
オプション 説明 設定値
-Dfile 配置するライブラリファイルパスを指定します。 任意
-DgroupId 配置するライブラリのgroupIdを指定します。 任意
-DartifactId 配置するライブラリのartifactIdを指定します。 任意
-Dversion 配置するライブラリのversionを指定します。 任意
-Dpackaging 配置するライブラリのパッケージング種別を指定します。 jar

15.6.2. Mavenプロジェクトで作成したアプリケーション

既存MavenプロジェクトをWebOTX Uber JAR作成用のMavenプロジェクトに移行する手順です。
  1. コンテナ向けプリケーション検証を行います。
    Memo
    Uber JAR向けにJavaアプリケーションを作成する場合、コンパイルエラー等の問題を解決後に「コンテナ向けアプリケーション検証機能」を使用してUber JARで動作可能か否かの確認を行ってください。変更が必要な場合は対処を行ってください。
  2. プロジェクトディレクトリ直下のpom.xmlを編集します。
  3. 前項で[pom.xmlの設定]を参照して設定した内容に従い、必要なファイルを配置します。

15.7. ライセンスについて

WebOTXマイクロサービスMavenプラグインで作成したWebOTX Uber JARには、作成後365日間のお試し版ライセンスが適用されます。(WebOTX Uber JAR作成日を0日目とし、366日目に到達すると期限切れとなります。)
正式版ライセンスを適用するには、UberJAR起動時に環境変数「OTX_LICENSE」にライセンスキーを設定します。複数のライセンスキーを設定する場合は、カンマ区切りで指定します。