Jakarta EE 10 の学習 - サーブレットアプリ1 -

記事
IT・テクノロジー

シンプルサーブレット

Jakarta EE 10 には Jakarta Servlets 6.0 が含まれている。この記事ではこのJakarta Servlet API のクラスを利用した簡単なアプリを作成し、アプリケーションサーバーにデプロイする。

といってもどう始めて良いか分からないので、教材となる資料を準備。
"Java EE to Jakarta EE 10 Recipes" という本の github リポジトリ:
github.com/Apress/javaEE-to-jakartaEE10-recipes
にあるコードを参考にする。

Web モジュールの作成

下記画像のSimpleServlet ディレトリがここで作成する Web モジュールの完成形。
これをアプリケーションサーバーであるGlassFish にデプロイすることになる。
tree.png

以下で作成方法について説明していく。ここではIDE もビルドマネージャーも使わず、最低限のツールのみで手動で行う。
まずは画像の通りディレクトリツリーを作成しておく。そして中に配置するソースファイルの準備に進む。

Java ソースファイルのコンパイル

SimpleServlet.java をコンパイルして SimpleServlet.class を生成する。

$ javac -cp <GlassFishのインストールパス>/glassfish/modules/jakarta.servlet-api.jar SimpleServlet.java

ソースファイルで Servlet API のクラスを使用しているので、-cp オプションでクラスパスにこのAPI のJAR ファイルを指定する必要がある。

Servlet API の JAR ファイルはインストールしたGlassFish の glassfish/modules/ ディレクトリに置かれている。ここでは GlassFish バージョン 7.0.6を使用しており、7.0.6には Jakarta EE バージョン10 のAPI が含まれる。
参考: glassfish.org/download_gf7.html
そして、Jakarta EE 10 に含まれる Servlet API はバージョン6.0 である。つまり、ここでは Jakarta Servlet API のバージョン 6.0 を使用するということ。

生成された .class ファイルをディレクトリツリーにコピーして配置する。

・SimpleServlet.java の内容(package と import 宣言)
java-head.png

・SimpleServlet.java の内容(SimpleServlet クラスの定義)
simpleservlet-java.png
コードの説明は後の記事で行うつもり。(doPost メソッドの実装を省いているなど、元のコードからの改変を含む)

Web モジュールのデプロイ設定ファイル

デプロイの設定を与えるXMLファイル web.xml
web-xml.png

基本的には資料にあるweb.xml をそのまま使用するが、スキーマの定義ファイルとバージョンを5.0 から6.0 に変更している。Jakarta EE 10 に含まれるのは Jakarta Servlet 6.0 なので、これが正しい設定ではないかと思う。
参考: jakarta.ee/xml/ns/jakartaee/#10

このファイルはモジュールディレクトリの WEB-INF/ のルートに配置する。

GlassFish サーバーにデプロイ

以前の記事で紹介したように、asadmin start-domain domain1 コマンドでドメインをスタートする。ブラウザで localhost:4848/ にアクセスし、管理画面にログイン。"Deploy an Application" ボタンをクリックする。
"Browse Folders" をクリックして、デプロイするディレクトリを選択する。Type は "Web Application" を選択、デフォルト設定のまま "OK"ボタンクリックでデプロイする。
deploy-from-dir.png

デプロイに成功した場合はアプリケーションの名前がリストに表示される。
"Launch" をクリックするとアプリのURLリンク が表示されるので、リンクをクリック。
app_list.png

下記のようなアプリケーションのページが表示された。
simple_servlet_page.png
後の記事に続く

コメント: 記事内の情報は著者が個人的に調べた範囲で理解しているものです。必要に応じて訂正する場合があります。

著者・投稿者: ENARTS05
編集履歴:
2023/9/27 作成

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す