1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Java】Eclipse2025でJakartaEEプロジェクトを作成する

Posted at

image.png

JakartaEEとは

概要

Jakarta EE(ジャカルタ・イーイー)とは、Javaを使ってサーバーサイドや大規模システムを開発するための標準仕様群(APIやランタイム環境のセット)のことで、以前は「Java EE(Java Platform, Enterprise Edition)」と呼ばれていました。
2017年にオラクル社からEclipse Foundationへ開発が移管された際、商標の問題から「Jakarta EE」へと名称が変更されました。Webアプリケーション開発に必要なデータベース連携(JPA)、Web API(JAX-RS)、画面表示(JSF)、依存性注入(CDI)など、高度な機能を提供します。

Jakarta EEの主な特徴

エンタープライズ向け標準: 企業システム開発に必要な、安定性、移植性、セキュリティなどの機能が標準化されています。
旧Java EEの後継: Java EE 8までの仕様を引き継ぎ、よりオープンなコミュニティ主導で開発が進められています。
オープンソース: Eclipse Foundationが管理するオープンソースプロジェクトであり、ベンダー中立な仕様を提供しています。
豊富な機能: データベースアクセス、Webサービス、メッセージング、バッチ処理など、多様な機能が含まれます。

事前準備

Eclipse2025にプラグイン「Eclipse Enterprise Java and Web Developer Tools」を導入

Eclipse Enterprise Java and Web Developer Toolsとは?
Javaのエンタープライズ(企業向け)アプリケーションやWebアプリケーション開発に特化した、Eclipse IDE(統合開発環境)の機能拡張版(パッケージ)です。
Java EE(Jakarta EE)、Web開発に必要なサーバー連携(Tomcat, JBossなど)、Springフレームワーク、HTML/CSS/JavaScript開発などの機能が最初から含まれており、これらを効率的に行うためのツール群が統合されています。

主な特徴と内容
Java EE (Jakarta EE) 開発: Servlet, JSP, EJB, JPAなどのJava EE技術を使った開発をサポートします。
Web開発ツール: HTML, CSS, JavaScript, XMLなどのWeb関連ファイルの編集やデバッグを支援します。
サーバー連携: Apache Tomcatなどのアプリケーションサーバーとの連携機能が組み込まれています。
Spring Framework: Spring Bootアプリ開発など、Spring開発に必要な機能も統合されています。
豊富なプラグイン: 豊富なプラグイン(拡張機能)により、さらに多くの機能を追加・拡張できます。

JakarataEEをEclipse2025で扱うためにはプラグイン「Eclipse Enterprise Java and Web Developer Tools」をインストールします。
【手順】
[ヘルプ]⇒[Eclipseマーケットプレース]を選択します。
image.png
検索窓に「Eclipse Enterprise Java and Web Developer Tools」と入力すると表示されるので、右端の[インストール]ボタンを選択します。
image.png
すると、下記のフィーチャー一覧が表示されます。特に導入したいものが無ければそのままで、[確認]ボタンをクリックします。
image.png
「インストールを続行しますか?」というメッセージ画面が表示されるので、[はい]を選択します。
image.png
「これらの著作者を信頼しますか?」欄で[すべて選択]ボタンを押して、全選択します。
その後、[選択項目を信頼]ボタンをクリックします。
image.png

JakartaEEプロジェクトの作成

手順①:JakartaEE`公式サイトに移動する

下記のJakartaEE公式サイトに移動します。

JakartaEEプロジェクト作成画面.png

[プロジェクト設定の選択]
JakarataEE公式サイトで下記のようにプロジェクトの設定を行っていきます。
Jakarta EE Version: 使用したいJakarta EEのバージョンを選択します (例: 10)。
Profile: アプリケーションの種類を選択します (例: Web Profile)。
Group: MavenのgroupIdを入力します (例: com.example)。
Artifact: MavenのartifactIdを入力します (例: jakartaee-app)。
●その他のオプション(Runtimeなど)も適宜選択します。

Generate Project」をクリックして、プロジェクトのZIPファイルをダウンロードします。
ZIPファイルを解凍(展開)します。
image.png

[Eclipseを起動し、プロジェクトをインポート]
●EclipseのメニューからFile > Import...を選択します。
●「Import」ウィンドウでMaven > Existing Maven Projectsを選択し、Nextをクリックします。
Browse...をクリックして、解凍したプロジェクトフォルダを選択します。pom.xmlファイルが認識されることを確認します。
Finishをクリックして、プロジェクトをワークスペースにインポートします。

[pom.xmlを更新]
jakarta.jakartaee-web-apiを追加します。

<dependencies>セクションに、使用するJakarta EEのバージョンに応じた依存関係を追加します。
例えば、Jakarta EE Webプロファイル10の場合、以下のような依存関係を追加します。

これで、Jakarta EEの依存関係が追加されました。

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>jakartaee-app</artifactId>
    <version>0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>jakartaee-app</name>
    <description>
        This is a very simple Jakarta EE application generated by the official Eclipse Starter.
    </description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.report.sourceEncoding>UTF-8</project.report.sourceEncoding>
        <maven.compiler.release>21</maven.compiler.release>
        <jakartaee-api.version>10.0.0</jakartaee-api.version>
        <compiler-plugin.version>3.13.0</compiler-plugin.version>
        <war-plugin.version>3.4.0</war-plugin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-web-api</artifactId>
            <version>${jakartaee-api.version}</version>
            <scope>provided</scope>
        </dependency>
        <!--追加-->
        <dependency>
	        <groupId>jakarta.platform</groupId>
	        <artifactId>jakarta.jakartaee-web-api</artifactId>
	        <version>10.0.0</version> <!-- 使用するバージョンに合わせる -->
	        <scope>provided</scope>
	    </dependency>
    </dependencies>

    <build>
        <finalName>jakartaee-app</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>${war-plugin.version}</version>
            </plugin>

        </plugins>
    </build>
</project>

プロジェクトの更新
プロジェクトを右クリックし、Maven > Update Project...を選択します

手順③:サーバ起動

プロジェクトの上で右クリック⇒[実行]⇒[サーバで実行]を選択します。
Jakartaサー実行手順1.png
ラジオボタン[手動で新規サーバを定義]を選択します。
[サーバのタイプを選択]欄から[Apache]⇒[Tomcatv11のサーバ]を選択して、[次へ]ボタンをクリックします。
※Tomcatサーバは好きなものを選んでいただいて大丈夫です。
Jakartaサー実行手順2.png

作成したアプリが表示されていることを確認して、[完了]ボタンをクリックします。
Jakartaサー実行手順3.png

ワークスペースのブレークポイントメッセージが表示されるので、[はい]を選択します。
Jakartaサー実行手順4.png

手順④:アプリの実行

プロジェクトの上で右クリック⇒[実行]⇒[サーバで実行]を選択します。
Jakartaサー実行手順1.png

起動するサーバを選択して、[完了]ボタンをクリックします。
image.png

下記のように画面が表示されれば完了です。
image.png

テンプレートエンジンJSPファイルを新規作成

次は、ページを作成してみましょう。
テンプレートエンジンJSPをJakartaEEは標準採用しているのでこちらを使います。

Jakarta EEにおけるWEB-INF/ディレクトリは、Webアプリケーションの秘密の場所で、JSPファイルを直接URLからアクセスさせずに、サーブレット(Jakarta Servlet)経由でフォワード(getRequestDispatcher().forward())して利用する際に使われます。
このフォルダ内(例: WEB-INF/views/)にJSPを置くことで、セキュリティを確保しつつ、動的なコンテンツ生成や画面表示の役割分担(MVCパターン)を実現できます。

WEB-INF/ディレクトリの役割
セキュリティ: WEB-INF/配下のJSPファイルは、直接ブラウザからアクセス(例: http://localhost/app/WEB-INF/views/mypage.jsp)できません。
動的コンテンツ: サーブレットがリクエストを受け取り、ビジネスロジックを実行後、request.getRequestDispatcher("/WEB-INF/views/result.jsp").forward(request, response); のようにフォワードすることで、JSPHTMLを生成し、クライアントに返されます。
構成管理: web.xml(デプロイメントディスクリプタ)やタグライブラリの記述ファイル(.tld)などもWEB-INF/に配置されます。

さっそく、下記のディレクトリにServletクラスを新規作成しましょう。
image.png

/jakartaee-app/src/main/java/com/example/jakarta/hello/MyServlet.java
package com.example.jakarta.hello;

import java.io.IOException;

import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());
		
		// データをリクエストにセット (JSPで利用可能)
		request.setAttribute("message", "Hello from Servlet!");
		
		// WEB-INF/views/welcome.jsp にフォワード
		RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/views/welcome.jsp");
		dispatcher.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

続いて、下記のディレクトリにJSPファイルを新規作成しましょう。
image.png

/jakartaee-app/src/main/webapp/WEB-INF/views/welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome サーブレット</title>
</head>
<body>
	<h1>Welcome to Jakarta EE!</h1>
	<p>Message: ${message}</p> <!-- サーブレットから渡されたメッセージ -->
</body>
</html>

下記のように、ページが表示されればOKです。
image.png

サイト

Qiita

JakarataEEについて

Java EE完全ガイド2024:仕組みから実装まで解説する12の重要ポイント

【保存版】Jackson入門 2024:Java開発者のための実践的JSON処理ガイド 10のベストプラクティス

Javaフレームワーク(Jakarta EE、Springなど)まとめ【2025年8月時点】

【spring-mvc + Thymeleaf】 eclipse で spring プロジェクトを作成する

Strutsについて

【2024年保存版】Apache Strutsの完全ガイド:導入から実践まで13のステップ

Atmoc Designについて

【AtomicDesign】学習メモ

React19はforwardRef絡みの長ったらしい型記述を無くしてくれる

TypeScriptの型安全性を極めるライブラリ6選

Atomic Design ベースの Vue コンポーネント設計

RUNTEQ

【超入門】現場で通用する「プロが教えるテーブル設計!」

Dexallテックブログ

【2024年保存版】Apache Strutsの完全ガイド:導入から実践まで13のステップ

【2024年最新】Spring Framework MVCマスター入門:7つの必須知識と実践テクニック

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?