LoginSignup
3
1

More than 1 year has passed since last update.

Jakarta EE10でもUberJarでお気軽開発をする〜Payara編〜

Posted at

はじめに

本記事はMDC Advent Calendar 2022の10日目の記事です。

Jakarta EE10でもUberJarを使って開発するぞ、ということで前回はOpen Libertyをターゲットに動作確認しました。

今回は前回使ったソースコードをベースに修正していくことでPayaraに対応していきたいと思います。

Payaraとは

Payaraは、GlassFish Serverのオープンソース版から派生したJava EE、Jakarta EE準拠のアプリケーションサーバーです。OSS版、エンタープライズ版がありますが、今回はOSS版を使っていきます。

日本ではサムライズムさんが代理店対応を行っています。

Open Liberty → Payara対応

まず、PayaraでJakartaEE10、UberJar対応する方法を調べます。
以下記事を見てわかるとおり、PayaraでUberJar化する際には、Payara Microを使います。

また、Payaraのリリースページを見ていくと、Payara6からJakarta EE10対応しているようですので、そちらを採用していきます。

なお、Payara MicroはMavenセントラルリポジトリに上がっていますのでそちらを使っていきます。

image.png

pom.xmlの修正

  • (10行目) Open LibertyのMavenバージョンの指定は不要となるので削除します
  • (26行目以降) Payara Microは依存ライブラリに追加する形での利用となるので、追加します。バージョンは6系を使いたいので6.2022.1とします。

image.png

diffが広範囲になってわかりにくいのですが、差分は以下です。

  • (53行目以降) Open Libertyのプラグインは不要となるので削除します
  • (58行目以降) Payara Microのプラグインを追加します
  • (80行目以降) Mavenコンパイラブラグインを追加し、JDKのバージョンを11に指定します。こちらは追加不要かもしれません。正常動作しているほかのリポジトリから念の為持ってきました。

image.png
image.png
image.png

Open Libertyの独自ファイルの削除

  • server.xmlを削除しました

image.png

(おまけ)HTMLの修正

  • 画面がMicroProfileのままになっていたので、JakartaEEに変更しておきました

image.png

動作確認

Payara Microは実行プラグインを用意してくれているので、mvn clean package payara-micro:startのコマンド1発でビルドと起動させることができます。
初回は各種ライブラリダウンロードするので時間がかかります。以下は2回目以降の実行時ログ抜粋です。

\$ mvn clean package payara-micro:start
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.example:jeedemo:war:1.0-SNAPSHOT
・
・
〜省略〜
・
・
jeedemo' REST Endpoints:
GET     /data/application.wadl
GET     /data/hello
GET     /openapi/
GET     /openapi/application.wadl

]]

[2022-12-10T00:22:04.782+0900] [] [情報] [] [PayaraMicro] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1670599324782] [levelValue: 800] Payara Micro  6.2022.1 #badassmicrofish (build 878) ready in 43,153 (ms)

43秒ぐらいでした。前回と比べて早いですね。

画面は前回と同じです。ポートの指定はしていませんので、デフォルトの8080となります。

image.png

無事画面表示できました!おまけで修正した内容も正しく反映されています。

まとめ

今回はPayaraを使ってJakartaEE10でUberJarを実現させてみました。前回よりシンプルで、起動時間も早かったので個人的にはこちらの方が好みです。

参考

今回使ったソースコードは以下になります。JavaとMaven環境が整っていれば、clonemvn clean package payara-micro:startで動作させることが出来ると思います。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1