IntelliJ IDEA 2025.3 ヘルプ

チュートリアル: 最初の Jakarta EE アプリケーション

このチュートリアルでは、IntelliJ IDEA でシンプルな Jakarta Enterprise Edition (EE) Web アプリケーションを作成する方法について説明します。アプリケーションには、Hello, World! を表示する単一の JSP ページと、同じく Hello, World! を表示する Java サーブレットへのリンクが含まれます。

Web アプリケーションテンプレートを使用して新しい Jakarta EE プロジェクトを作成し、アプリケーションサーバーの場所を IntelliJ IDEA に伝え、実行構成を使用してアーティファクトをビルドし、サーバーを起動して、アーティファクトをサーバーにデプロイします。

必要なものは次のとおりです。

関連するプラグイン

デフォルトでは、IntelliJ IDEA Ultimate には次の必要なプラグインがバンドルされ、有効になっています。何かが機能しない場合は、次のプラグインが有効になっていることを確認してください。

  • Jakarta EE プラットフォーム

  • Jakarta EE: アプリケーションサーバー

  • Jakarta EE: Web/ サーブレット

  • Tomcat と TomEE

プラグインのインストールの説明に従って、GlassFish プラグインをインストールして有効にします。

Java SE Development Kit (JDK) バージョン 1.8 以降

Java 開発キット (JDK) に従って IntelliJ IDEA から直接 JDK を取得するか、手動でダウンロードしてインストールできます (例: Oracle JDK(英語) または OpenJDK(英語))。

Tomcat

Tomcat(英語) アプリケーションサーバーバージョン 7 以降。

GlassFish

GlassFish(英語) アプリケーションサーバーバージョン 4.0 以降。公式リポジトリ(英語)から最新リリースを入手できます。このチュートリアルの目的には、Web プロファイルサブセットで十分です。

Web ブラウザー

Web アプリケーションを表示するには、Web ブラウザーが必要です。

新しい Jakarta EE プロジェクトを作成する

IntelliJ IDEA には、さまざまな Jakarta EE 実装に基づいて Jakarta Enterprise プロジェクトを作成するための専用ウィザードが含まれています。このチュートリアルでは、簡単な Web アプリケーションを作成します。

  1. メインメニューで、ファイル | 新規 | プロジェクトに移動します。

  2. 新規プロジェクトダイアログで、Jakarta EE を選択します。

  3. プロジェクトの名前を入力します: JakartaEEHelloWorld

  4. Web アプリケーションテンプレート、Maven をビルドツールとして選択し、Oracle OpenJDK 17 をプロジェクト SDK として使用します。アプリケーションサーバーを選択または追加しないでください。後で行います。

    次へをクリックして続けます。

    New Java Enterprise project wizard
  5. バージョンフィールドでは、このチュートリアルで使用する Tomcat 11 と互換性がある Jakarta EE 11 を選択します。

    バージョンフィールドで Jakarta EE 9.1 を選択します。これは、このチュートリアルで使用する GlassFish 6.2.5 が互換性があるためです。

    依存関係リストでは、Web アプリケーションテンプレートに仕様サーブレットフレームワークのみが含まれていることがわかります。

    New Java Enterprise project wizard
    New Java Enterprise project wizard
  6. 作成をクリックします。

デフォルトのプロジェクト構造を調べる

IntelliJ IDEA は、正常にビルドおよびデプロイできる定型コードを使用してプロジェクトを作成します。

  • pom.xml は、プロジェクトのビルドに必要な依存関係やプラグインなど、Maven 構成情報を備えたプロジェクトオブジェクトモデルです。

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>JakartaEEHelloWorld</artifactId> <version>1.0-SNAPSHOT</version> <name>JakartaEEHelloWorld</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>21</maven.compiler.target> <maven.compiler.source>21</maven.compiler.source> <junit.version>5.11.0-M2</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> </plugins> </build> </project>
    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>JakartaEEHelloWorld</artifactId> <version>1.0-SNAPSHOT</version> <name>JakartaEEHelloWorld</name> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.source>11</maven.compiler.source> <junit.version>5.9.2</junit.version> </properties> <dependencies> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.2</version> </plugin> </plugins> </build> </project>
  • index.jsp は、ルートディレクトリの URL にアクセスしたときに開くアプリケーションの開始ページです。Hello World!/hello-servlet へのリンクをレンダリングします。

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>JSP - Hello World</title> </head> <body> <h1><%= "Hello World!" %> </h1> <p/> <a href="hello-servlet">Hello Servlet</a> </body> </html>
  • HelloServlet クラスは HttpServlet を拡張し、@WebServlet でアノテーションが付けられています。/hello-servlet へのリクエストを処理します。GET リクエストは、Hello World! をレンダリングする HTML コードを返します。

    package com.example.demo; import java.io.*; import javax.servlet.http.*; import javax.servlet.annotation.*; @WebServlet(value = "/hello-servlet") public class HelloServlet extends HttpServlet { private String message; public void init() { message = "Hello World!"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); // Hello PrintWriter out = response.getWriter(); out.println("<html><body>"); out.println("<h1>" + message + "</h1>"); out.println("</body></html>"); } public void destroy() { } }

プロジェクトツールウィンドウを使用してプロジェクト内のファイルを参照して開くか、Ctrl+Shift+N を押してファイルの名前を入力します。

アプリケーションサーバーを構成する

IntelliJ IDEA に、GlassFish Tomcat アプリケーションサーバーが配置されている場所を知らせます。

  1. Ctrl+Alt+S を押して設定を開き、ビルド、実行、デプロイ | アプリケーションサーバーを選択します。

  2. the Add button をクリックし、GlassFish サーバー Tomcat を選択します。

  3. GlassFish Tomcat サーバーのインストール場所へのパスを指定します。IntelliJ IDEA は、名前とバージョンを適切に検出して設定します。

    GlassFish application server configuration
    Tomcat application server configuration

実行構成の作成

IntelliJ IDEA は、アーティファクトを構築してアプリケーションサーバーにデプロイするための実行構成を必要とします。

  1. メインメニューで、実行 | 実行構成の編集に移動します。

  2. 実行 / デバッグ構成ダイアログで、the Add button をクリックし、GlassFish サーバー Tomcat サーバーノードを展開して、ローカルを選択します。

  3. 実行構成設定ダイアログの下部に表示される警告を修正します。

    Run configuration warning

    ほとんどの場合、以下を修正する必要があります。

    • サーバータブで、サーバードメインdomain1 に設定します。

    • デプロイタブで、デプロイするアーティファクトを追加します: JakartaEEHelloWorld:war exploded

  4. サーバータブで、ルートリソースを指すように URL を設定します。

    http://localhost:8080/JakartaEEHelloWorld_war_exploded/
    http://localhost:8080/JakartaEEHelloWorld-1.0-SNAPSHOT/
    GlassFish run configuration done
    Tomcat run configuration done
  5. OK をクリックして、実行構成を保存します。

  6. 構成を実行するには、Alt+Shift+F10 を押して、作成したアプリケーションサーバー構成を選択します。

    あるいは、上部のメインツールバーで実行構成を選択している場合は、メインツールバーの The Run icon をクリックするか、Shift+F10 を押して実行できます。

この実行構成は、アーティファクトを作成してから、GlassFish Tomcat サーバーを起動し、アーティファクトをサーバーにデプロイします。サービスツールウィンドウに対応する出力が表示されます。

Started GlassFish server and deployed application in the Services tool window
Started GlassFish server and deployed application in the Services tool window

これが完了すると、IntelliJ IDEA は指定された URL を Web ブラウザーで開きます。

Deployed application output in the web browser

そうでない場合は、自分で URL を開いてみてください: http://localhost:8080/JakartaEEHelloWorld_war_exploded/ http://localhost:8080/JavaEEHelloWorld-1.0-SNAPSHOT/

アプリケーションを変更する

アプリケーションのソースコードを変更するたびに、実行構成を再起動して変更を確認できます。ただし、特にサーバーを再起動できない場合は、これは必ずしも必要ではありません。ほとんどの変更はマイナーであり、アーティファクトの再構築、サーバーの再起動などは必要ありません。アプリケーションの JSP ページを変更してみましょう。

  1. index.jsp を開き、グリーティングを Hello World から A better greeting に変更します。

  2. サービスツールウィンドウで、The Update Application button をクリックするか、Ctrl+F10 を押します。

  3. JSP ページは静的リソースであるため、更新ダイアログでリソースの更新を選択します。OK をクリックします。

  4. Web ブラウザーでアプリケーションの URL をリフレッシュして、新しい文字列を確認します: A better greeting.

実行構成設定でデフォルトの更新アクションを構成できます。メインメニューの実行 | 実行構成の編集に移動します。GlassFish Tomcat 実行構成設定のサーバータブで '更新' アクション時オプションを変更します。

Configure application update actions in the GlassFish run configuration
Configure application update actions in the GlassFish run configuration

フレーム切り替え時オプションを使用すると、IntelliJ IDEA からフォーカスを変更するたびにサーバーを再デプロイして再起動することなく、リソースとクラスをリフレッシュするように構成できます。この場合、アプリケーションを更新アクションを使用する必要はなく、Web ブラウザーに切り替えてページをリフレッシュするだけです。

アプリケーションを WAR にパッケージ化し、実行中のサーバーにデプロイする

前の手順では、すべてのファイルが圧縮されていないデプロイされたアーティファクトを使用してアプリケーションをデプロイしました。これは、再デプロイせずに個々のリソースとクラスを更新できるため、開発の最初の段階で役立ちます。アプリケーションに満足し、リモートサーバーにデプロイして他のユーザーと共有する準備ができたら、圧縮 Web アーカイブ (WAR) 形式を使用することをお勧めします。

リモートグラスフィッシュ リモートトムキャット実行構成を追加して、WAR アーティファクトを実行中のサーバーにデプロイしましょう。これは、前の手順で実行中のサーバーを終了していないことを前提としています。

  1. メインメニューで、実行 | 実行構成の編集に移動します。

  2. 実行 / デバッグ構成ダイアログで、the Add button をクリックし、GlassFish サーバー Tomcat ノードを展開して、リモートを選択します。

  3. 区別できるように、この実行構成の名前を変更します (例: Remote GlassFish 6.2.5 Remote Tomcat 10.1.5)。

  4. デプロイタブを開き、デプロイするアーティファクトのテーブルの上にある the Add button をクリックして、アーティファクトを選択します。JakartaEEHelloWorld:war アーティファクトを選択し、OK をクリックします。

    Remote GlassFish run configuration artifacts to deploy
    Remote Tomcat run configuration artifacts to deploy
  5. OK をクリックして、リモート実行構成を保存します。

  6. index.jsp を開き、グリーティングを Hello from WAR! に変更します。

  7. メインツールバーで新しい実行構成を選択し、The Run icon をクリックするか、Shift+F10 を押します。

    Remote GlassFish run configuration in the selector

    Remote GlassFish run configuration in the selector

新しい構成では、WAR アーティファクトが構築され、実行中のサーバーにデプロイされます。URL をリフレッシュして、新しい挨拶を確認してください: Hello from WAR!

トラブルシューティング

Jakarta EE との互換性

404 エラーが発生した場合は、プロジェクトの作成時に GlassFish のバージョンと互換性のある Jakarta EE 仕様バージョンを選択したことを確認してください。

詳細については、GlassFish のバージョンの互換性(英語)を参照してください。

Tomcat に接続できません

リモート Tomcat サーバーにアプリケーションをデプロイしようとしたときに Unable to connect to the localhost:1099 のようなエラーメッセージが表示された場合は、次の手順を試してください。

  • Tomcat サーバーが実行されていることを確認してください。例: 上記で説明したローカル Tomcat 実行構成を起動します。

  • JMX 認証を構成するか、(運用環境ではない場合) アプリケーションをデプロイするサーバーを実行する前に -Dcom.sun.management.jmxremote.authenticate=false VM オプションを渡して JMX 認証を無効にします。

古い IntelliJ IDEA バージョン

IntelliJ IDEA バージョン 2020.2.2 以前を使用している場合、新規プロジェクトウィザードは Tomcat に必要なすべての依存関係を追加しません。この場合、pom.xml を開き、次の依存関係を追加します。

<dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.31</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>2.31</version> </dependency>

例: バージョン 2020.2.3 では、生成された 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>RestTomcatHelloWorld</artifactId> <version>1.0-SNAPSHOT</version> <name>RestTomcatHelloWorld</name> <packaging>war</packaging> <properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <junit.version>5.6.2</junit.version> </properties> <dependencies> <dependency> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> <version>2.1.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.jersey.containers</groupId> <artifactId>jersey-container-servlet</artifactId> <version>2.31</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.31</version> </dependency> <dependency> <groupId>org.glassfish.jersey.inject</groupId> <artifactId>jersey-hk2</artifactId> <version>2.31</version> </dependency> <dependency> <groupId>org.glassfish.jersey.core</groupId> <artifactId>jersey-client</artifactId> <version>2.31</version> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.3.0</version> </plugin> </plugins> </build> </project>

次の作業

このチュートリアルでは、シンプルな Jakarta EE アプリケーションを作成してデプロイしました。この知識を拡張するには、チュートリアル: 初めての RESTful Web サービスに従って RESTful Web サービスを作成します。

2025 年 11 月 26 日

関連ページ:

プラグインのインストール

プラグインは IntelliJ IDEA のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。プラグイン設定を開くを押して設定を開き、を選択します。マーケットプレースタブを使用して、JetBrains...

SDK

ソフトウェア開発キットまたは SDK は、特定のソフトウェアフレームワーク用のアプリケーションを開発するために必要なツールのコレクションです。例: Java でアプリケーションを開発するには、Java SDK(JDK) が必要です。SDK には、バイナリ、バイナリのソースコード、ソースコードのドキュメントが含まれています。JDK ビルドにはアノテーションも含まれています。一般に、SDK はグローバルです。つまり、1 つの SDK を複数のプロジェクトやモジュールで使用できます。新しいプロジェクトを作...

チュートリアル: 初めての RESTful Web サービス

このチュートリアルでは、IntelliJ IDEA で単純な RESTful Web サービスを作成し、それを TomcatGlassFish アプリケーションサーバーにデプロイする方法について説明します。Web ブラウザーから特定の URL にアクセスするか、この URL に GET リクエストを送信すると、サービスはを出力します。別のアプリケーションサーバーの手順については、このページの上部にあるスイッチャーを使用してください。新しい Java Enterprise プロジェクトを作成し、必要な...

Jakarta EE

IntelliJ IDEA は、Jakarta EE(旧称 Java EE) に基づくエンタープライズ Java アプリケーションの開発をサポートします。IntelliJ IDEA Ultimate では、必要なすべてのプラグインがバンドルされ、デフォルトで有効になっています。主なプラグインは、専用のプロジェクトウィザードなどのコアプラットフォームサポート用の Jakarta EE プラットフォームです。名前が Jakarta EE で始まるその他のプラグインは、JPA、JAX-RS などのさまざまな...