EclipseでJavaEE開発環境を構築(2023年版)

はじめに

 最近、Java EE(アプリケーションサーバーはGlassFish)の開発環境で作業する必要があったのですが、何年か前に構築していた当該環境は捨ててしまっていたので、最近のEclipseで再構築しました。
 Java EE(現在のEclipse Jakarta EE)で、なおかつアプリケーションサーバーがGlassFishという組み合わせは、近年においてはメジャーなエンタープライズ開発プラットフォームではないためか、以前構築した時はわりとお手軽に環境構築できたと記憶しているのですが、今回の構築作業では色々躓く箇所がありました。当該開発環境はメジャーな環境ではないとはいえ、当社業務系のシステムでは比較的使用している環境でもあり、この先しばらくはEclipseのバージョンアップに追従する必要もまだありそうなため、今回行った手順を整理しておきたいと思います。

 今回構築を行なった環境は、以下のとおりです。
  OS: macOS Ventura 13.4.1
  GlassFish: 4.1.2
  JDK: Zulu 8.68.0.21
  Eclipse: 2023-06(4.28.0)

GlassFish Toolsのインストール

 以前は、Eclipse Marketplaceを使用してGlassFish Toolsをインストールできたのですが、現在この方法は「No repository found」のエラーが出てNGのようです。
 EclipseにGlassFish Toolsを入れるにはまず、Sapphireを入れる必要があります(https://projects.eclipse.org/projects/webtools.glassfish-tools/downloads)。Sapphireのインストールは、Eclipseメーニューの[Help]-[Install New Softowere]から直接行ないたいところですが、リポジトリがすでにアーカイブに移行されているため、アーカイブサイト(https://www.eclipse.org/projects/archives.php)から直接ダウンロードして入れるというちょっとした煩雑な作業を行わなければなりません。
 以下のようにダウンロードしたローカルファイルからインストールします。

 Sapphireがインストールできたら、次に目的のGlassFish Toolsをインストールします。こちらもリポジトリがすでにアーカイブに移行されているため、アーカイブサイトから直接ダウンロードして入れます。

プロジェクトの作成

 今回はTarget runtimeが「GlassFish 4」の「Web Dynamic Project」のプロジェクトを作成します。

 [Next]をクリックして後続の画面で必要に応じて設定値を入力します。一連の最後に以下の画面が表示されます。

 この画面で[Finish]をクリックすると、以前のEclipseでは画面が閉じてプロジェクトの作成が完了するのですが、今回使用したEclipseではここで問題が発生します。[Finish]をクリックしても画面が閉じません。何かエラーが発生しているようです。問題はProject Facetsにあるようです(https://stackoverflow.com/questions/10421913/cannot-install-project-facet-error-while-creating-a-project)。一旦Eclipseを終了します。
 プロジェク自体は作成されているようです。以下の手順で解消します。
 プロジェクトフォルダ下の.settingsフォルダ下に作られているorg.eclipse.wst.common.project.facet.core.xmlを削除して、Eclipseを再起動します。
 プロジェクトのPropertiesのProject Facetsで以下を選択します。

 この状態でもアプリケーションのビルドでエラーが発生します。GlassFish Toolsにバグ?(原因の特定まではできていません)があるのか、Web App Libraryが読み込まれない問題があるようです。
 手動でライブラリを追加します。追加するライブラリは、GlassFishインストールディレクトリのmodulesディレクトリに配置されているjavax.servlet*.jar、org.eclipse.persistence.*.jarになります。

 以上の設定でEclipse環境でGlassFishサーバのアプリケーションの開発が行えるようになります。Serversペインで、アプリケーションを組み込んだGlassFish を起動すると、以下のように無事起動状態に変わり、デバッグできる状態になります。

 今回はmacOS環境で構築しましたが、Windows環境ではもう少し容易に構築できるのかもしれません。検証できる機会があったら、またご紹介したいと思います。