目的
LibertyでEJBのプログラムをテストします。
Gitレポジトリ
用意したGitレポジトリをクローンします。前に使用したJNDIのイメージを更新してEJBを動作するようにしました。
git clone https://github.com/pdprof/ejb-jndi.git
cd ejb-jndi/ejb-jndi-docker/
Libertyのイメージをビルドして開始
JNDIのlookupコードとサーバー構成を含むイメージをビルドします。
./setup-docker.sh
./start.sh
EJBアプリケーション
EJBのアプリケーションは Helloを返すだけですが
ejb-ear - アプリケーションを含む元になるもの
ejb-lib - EJBライブラリ
ejb-hello - Webアプリケーション
ejb-client - アプリケーションクライアント
になっていて、ejb-hello, ejb-client から ejb-lib を参照して ejbのクライアントとして動作するようになっています。それらを ejb-ear にモジュールとして同梱してアプリケーションとして動作させます。
アプリケーションのソースコードは
にあるのでテストしたい動作がある場合はこのコードを変更します。
サーブレットを動かす
EJBで Hello !! と出力するだけですが動作をためします。
トラブルシューティング
毎度のことですが、よくつかう dockerコマンドを書いておきます。この文書でもpodman, dockerとまとまりがないですが、Linux では dockerがpodmanを呼び出すようになっていました。
docker ps # 動作中のContainer確認
docker logs -f ejb-jndi # ログ確認
docker restart ejb-jndi # 再起動
docker inspect ejb-jndi # container 確認
docker exec -it ejb-jndi bash # Container内状況確認
など試してみましょう。ejb-jndiの部分を docker ps で確認した container の別IDにすることで他のコンテナも確認できます。
まとめ
LibertyのEJBアプリケーションを起動して動作をテストしました。