JettyでJPedalをデプロイする
開始する前に、WARファイルが必要です。WARファイルはダウンロードするか、自分でビルドすることができます。
このWARファイルは、JPedalサービスを動作させるために必須です。
jpedal-microservice.war ファイルをダウンロードしてください。
トライアルユーザーの方は、トライアル登録 後、Dockerセクションでwarファイルのダウンロードができます。
JPedal Microservice Exampleプロジェクトのコピーをビルドしてください。
手順はGitHubページ
で確認できます。
- 最新版のJetty 10 をダウンロードしてインストールしてください(Jetty 11以降はJakartaへの移行により対応していませんのでご注意ください)。
- Jettyホームディレクトリ用にJETTY_HOMEという新しい環境変数を作成してください。
- Jettyベースコンテンツを保持するためのディレクトリを作成し、そのディレクトリに移動してください。
- 次のコマンドを使用して必要なモジュールをセットアップしてください。
java -jar JETTY_HOME/start.jar --add-module=server,http,deploy,jsp - Jettyベースディレクトリに作成された
webappsフォルダにWARファイルを移動してください。
WARファイルの名前がWebアプリケーションのベースになります。例えば、Webサーバーがlocalhost:8080でホストされている場合、jpedal-microservice.warはlocalhost:8080/jpedal-microserviceにデプロイされます。 - Jettyサーバーを起動し、ブラウザで管理コンソールに移動してください。
java -jar start.jarでサーバーがlocalhost:8080で起動します。
Webアプリケーションが正常にデプロイされたかどうかは、ブラウザでそのURLに移動して確認できます - 中央にJPedal Microservice Exampleと書かれた真っ白なページが表示されるはずです。
REST APIを使用してJPedal Microservice Exampleとやり取りできます(詳細はGitHubページ を参照してください)。
場合によっては、プログラムの状態を外部のデータベースに保存したい場合があります。例えば、サーバー障害が発生した際にプログラムの状態を保持したい場合などです。
これを行うには、Jetty上でデータソースを作成し、そのJNDI名をマイクロサービスの設定に追加する 必要があります。
まず、データソースとして使用できるように、データベースドライバーjarを$JETTY_HOME/lib/extにインストールする必要があります。
ドライバーをロードしてサーブレットで使用できるようにするには、extとplusのモジュールを指定してJettyサーバーを起動する必要があります。
- plusは、JNDIを動作させるロジック(マイクロサービスがデータソースを見つけることを可能にする機能)を含むため必要です。
- extは、
$JETTY_HOME/lib/ext内のすべてのjarをクラスパスにロードするため、Jettyがデータベースドライバーを見つけることができるようになります。
これらは、Jettyを実行する際のコマンドライン引数として以下を追加することで有効にできます。
--add-module=plus,ext
$JETTY_HOME/etc/jetty.xmlを開き、ファイルの最下部(Configureタグ内)に移動して、次のように追加してください:
<New id="ID" class="org.eclipse.jetty.plus.jndi.Resource">
<Arg><Ref refid="wac"/></Arg>
<Arg>JNDI_NAME</Arg>
<Arg>
<New class="DATASOURCE_CLASS">
<Set name="url">JDBC_URL</Set>
</New>
</Arg>
</New>
JNDI_NAMEは、設定に記述する JNDI名です。通常はjdbc/で始まります。例:jdbc/myDatabase
JDBC_URLは、データベースにアクセスするために使用されるURLです。データベースドライバーjarのドキュメントで、これがどのような形式である必要があるかを確認できます。SQLite の場合は、jdbc:sqlite:/PATH/ON/DISK.dbとなります。
DATASOURCE_CLASSは、データベースドライバーjar内のドライバーのDataSourceクラスの完全修飾クラス名です。これもデータベースドライバーjarのドキュメントで確認できます。SQLite の場合は、org.sqlite.SQLiteDataSourceとなります。
この
<New class="DATASOURCE_CLASS">要素には、ドライバーを設定するための追加の<Set>要素を含めることもできます。これらには、ユーザー名やパスワードなどのパラメータを含めることができます。これらはドライバー依存なので、利用可能なオプションはデータベースドライバーのドキュメントで確認できます。
