JavaRush /Java Blog /Random-JA /Java EE開発用のローカル環境のセットアップ
zor07
レベル 31
Санкт-Петербург

Java EE開発用のローカル環境のセットアップ

Random-JA グループに公開済み
この記事では、Java EE アプリケーションを実行するための作業環境をセットアップします。思い出してください。前の資料ではJava EEの基本について説明しました。 Java EE開発用のローカル環境のセットアップ - 1環境とは、さまざまなソフトウェア コンポーネントのセットを意味します。
  • Java EE SDK;
  • Java EEアプリケーションサーバーGlassFish。
  • IntelliJ IDEA のセットアップ。
この資料の主な目的:
  1. Java EE アプリケーションを使用するための作業環境を準備する方法を示します。
  2. IntelliJ IDEA から Java EE アプリケーションを GlassFish サーバーにデプロイして実行する方法を示します。
このために行うことは次のとおりです。
  1. Java EE 7 SDKをダウンロードしてインストールします。
  2. Java EEアプリケーションサーバーGlassFishを育ててみましょう。
  3. コマンドライン経由でサーバーを起動および停止する方法を学びましょう。
  4. このサーバーにアプリケーションをデプロイするように IntelliJ IDEA を構成しましょう。
  5. デモ アプリケーションをデプロイして実行してみましょう。このデモ アプリケーションは、GlassFish アプリケーション サーバーとともに Java EE 7 SDK に含まれています。
この記事は、Java でのエンタープライズ開発に慣れてきた初心者の Java 開発者にとって役立ちます。これは、さらなる練習のためのちょっとした準備だと考えてください。基本的な Windows コマンド ライン (PowerShell) スキルに精通していれば、内容を理解できます。この記事で使用されているソフトウェア コンポーネントのバージョン:
  • グラスフィッシュ4.0;
  • IntelliJ IDEA 2019.3.1 (究極);
  • Java EE SDK 7。

Java EE SDKのインストール

重要な条件。Java EE SDK をインストールする前に、Java SE SDK がプリインストールされていることを確認する必要があります。
  1. まず、SDKをダウンロードする必要があります。これを行うには、検索エンジンに「Java EE SDK 7」と入力するか、Oracle Web サイトからSDK ダウンロード ページに直接アクセスします。

  2. 提供されている SDK のリストから、プラットフォームに適した SDK を選択する必要があります。この記事では、ディストリビューション「java_ee_sdk-7-jdk7-windows-x64-ml.exe」のインストールについて説明しています。

  3. インストールファイルを実行します。起動中に次のエラーが発生する場合があります (エラーが発生しない場合は、そのままインストールを続行できます)。

    Java EE開発用のローカル環境のセットアップ - 2

    これは、インストーラーがプリインストールされた Java ランタイム環境へのパスを見つけられなかったことを意味します。このエラーは、コマンド ラインを使用して JRE へのパスを手動で渡すことで修正できます。これを行うには、PowerShell を介してインストール ファイルを実行し、-j パラメーターを介してプレインストールされた JRE へのパスを渡す必要があります。

    たとえば、次のようになります。

    Java EE開発用のローカル環境のセットアップ - 3
  4. 以降のインストール手順は、ほとんどのプログラムで非常に一般的なものです。[次へ] ボタンと [インストール] ボタンをクリックするだけです。

    プログラムは Java EE SDK と GlassFish サーバーをインストールします。インストールが完了すると、起動して使用できるようになります。

  5. GlassFish サーバーが動作していることを確認するには、インストールの完了後、 http://localhost:4848/にあるサーバー管理パネルを開くことができます。

    以下のスクリーンショット:

    Java EE開発用のローカル環境のセットアップ - 4

コマンドライン経由での GlassFish の起動と停止

したがって、サーバーは稼働していますが、サーバーの起動はインストール プログラムによって開始されました。以下では、サーバーを自分で起動および停止する方法を理解していきます。まず、そのような実体をドメインとして明らかにしましょう。 ドメインは、 1 つの管理サーバーによって管理される 1 つ以上の GlassFish サーバー インスタンスのセットです。GlassFish サーバーをインストールすると、デフォルトのドメイン (domain1) が作成されます。次のコンポーネントが関連付けられています。
  • サーバーポート (デフォルトは 8080)。
  • 管理サーバーのポート (デフォルトは 4848)。
  • 管理者のユーザー名とパスワード (デフォルトは admin で、デフォルトではパスワードは必要ありません)。
Domain1 にはデフォルト値が割り当てられています。 Java EE開発用のローカル環境のセットアップ - 5サーバーを起動および停止するために、GlassFish ディストリビューションにはいくつかのスクリプトが含まれており、デフォルトでは次のディレクトリにあります。 C:\glassfish4\glassfish\bin コマンドライン経由で GlassFish サーバーを起動および停止するには、asadmin スクリプトを使用できます。とそのコマンド:
asadmin start-domain domain_name
asadmin stop-domain domain_name
サブディレクトリC:\glassfish4\glassfish\bin から PowerShell を実行して、サーバーを停止してみます (インストール後にすでに実行されているため) 。 Java EE開発用のローカル環境のセットアップ - 6サーバーは停止しています。では、実行してみましょう: Java EE開発用のローカル環境のセットアップ - 7

最初の Java EE アプリケーション、dukes-age を分析します。

次に、デモ Java EE アプリケーション、dukes-age を見ていきます。このアプリケーションは、first-cup アプリケーションとともに Java EE SDK に含まれています。これらのアプリケーションの説明は、Oracle の公式ドキュメント Web サイトの、初心者 Java EE 開発者向けの Java EE 入門コースのセクション 3 と 4 に記載されています。この記事では、dukes-age アプリケーションについて簡単に説明し、IntelliJ IDEA 開発環境から GlassFish サーバー上でこのアプリケーションを起動するプロセスを詳しく調べます。アプリケーションは、glassfish サーバー ディレクトリ内にあります。Java EE SDK のインストール時に Glassfish サーバーのデフォルトのパスを変更しなかった場合、このアプリケーションはフォルダーC:\glassfish4\docs\firstcup\example\dukes-ageにあります。おそらく、初心者も経験者もすべての Java 開発者は、Java プログラミング言語のマスコットであるデュークを少なくとも一度は見たことがあります。デュークに Java EE開発用のローカル環境のセットアップ - 8誕生日があることを知っている人はほとんどいません。彼は、Java テクノロジの最初のデモ バージョンが公開された 1995 年 5 月 23 日に生まれました。公爵年齢アプリは、名前が示すように、公爵の年齢に関する情報を提供します。IntelliJ IDEA でこのアプリケーションを開いてみましょう: ファイル -> 新規 -> 既存ソースからのプロジェクト... 次に、dukes-age アプリケーションが含まれるフォルダーに移動します。デフォルトではC:\glassfish4\docs\firstcup\example\dukes-にあります。 age で、ファイル pom.xml を選択して [OK] をクリックします。 Java EE開発用のローカル環境のセットアップ - 9次の構造を持つアプリケーションが開きます。 Java EE開発用のローカル環境のセットアップ - 10クラス コードを見てみましょうDukesAgeResource
package firstcup.dukesage.resource;

import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

/**
 * REST Web Service
 *
 */
@Path("dukesAge")
public class DukesAgeResource {

    /** Creates a new instance of DukesAgeResource */
    public DukesAgeResource() {
    }

    /**
     * Retrieves representation of an instance of DukesAgeResource
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("text/plain")
    public String getText() {
        // Create a new Calendar for Duke's birthday
        Calendar dukesBirthday = new GregorianCalendar(1995, Calendar.MAY, 23);
        // Create a new Calendar for today
        Calendar now = GregorianCalendar.getInstance();

        // Subtract today's year from Duke's birth year, 1995
        int dukesAge = now.get(Calendar.YEAR) - dukesBirthday.get(Calendar.YEAR);
        dukesBirthday.add(Calendar.YEAR, dukesAge);

        // If today's date is before May 23, subtract a year from Duke's age
        if (now.before(dukesBirthday)) {
            dukesAge--;
        }
        // Return a String representation of Duke's age
        return "" + dukesAge;
    }
}
これは、 1 つのメソッドを備えた JAX-RS RESTful Web サービスですgetText()。このメソッドのコードを調べると、このメソッドが Duke の誕生から経過した年数を返すことが明らかになります。つまり、このメソッドは Duke の年齢を返します。クラスは、REST コンテキスト内のリソースです。
  1. クラスの上のアノテーションは、@Path("dukesAge")このクラスによって呼び出しが処理される URI パスを定義します。
  2. メソッドの上の注釈は、@GETこのメソッドが GET リクエストを処理することを示しています。
  3. 注釈は、@Produces("text/plain")リクエストに対する応答のメディア タイプを指定します。getText()このメソッドがメディア タイプ text/plain の応答を生成することを推測するのは難しくありません。
web.xml 構成ファイルも見てみましょう。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
    </servlet>
    <servlet-mapping>
        <servlet-name>javax.ws.rs.core.Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>
このファイルでは、タグ内に値を持つservlet-mappingタグが定義されています。ここでは特定のルート ポイントが定義されており、そのルート ポイントへの呼び出しがサービスによってさらに処理されます。注釈 と組み合わせると、デュークの年齢に関する情報を取得するには、アドレス /webapi/dukesAge に連絡する必要があることがわかります。 url-pattern/webapi/*@Path("dukesAge")

GlassFish サーバー上で Java EE アプリケーションを実行するための IntelliJ IDEA のセットアップ

dukes-age アプリケーションについての非常に一般的なアイデアが得られたので (Oracleサイトで詳細を参照してください)、IDE からこのアプリケーションを実行できるように IntelliJ IDEA を構成しましょう。IntelliJ IDEA のセットアップ
  1. これを行うには、[実行] -> [構成の編集] メニューに移動します。
  2. [実行/デバッグ構成] パネルが開きます。 Java EE開発用のローカル環境のセットアップ - 11
  3. 新しい構成を追加する必要があります。これを行うには、プラス記号をクリックするか、Alt+Insert ホットキーを使用します。表示されたリストで、「GlassFish Server」->「Local」を選択します。 Java EE開発用のローカル環境のセットアップ - 12
  4. 開いたウィンドウで、構成のセットアップを開始しましょう。 Java EE開発用のローカル環境のセットアップ - 13
  5. 次のステップでは、サーバーにデプロイする必要があるアーティファクトを指定します。これは、[デプロイメント] タブでプラス記号 -> [アーティファクト...] をクリックして行うことができます。 Java EE開発用のローカル環境のセットアップ - 14
  6. dukes-age:war を選択し、「OK」をクリックします。 Java EE開発用のローカル環境のセットアップ - 15
  7. 次に、「適用」をクリックしてから「OK」をクリックして構成を保存します。
構成が作成されました!

アプリケーションの起動

それでは、アプリケーションを実行してみましょう。
  1. これを行うには、ホットキー Alt+Shift+F10 を使用するか、メニューの [実行] -> [実行...] を使用します。

    そして、作成した dukes-age 構成を選択します。

    Java EE開発用のローカル環境のセットアップ - 16

  2. この後、[サービス] パネルに起動ログが表示されます。

    Java EE開発用のローカル環境のセットアップ - 17
  3. その後、指示に従ってすべてを実行すると、ブラウザが開き、何も動作していないことがわかります。

    Java EE開発用のローカル環境のセットアップ - 18
それがITの世界です。すべてが正しく行われたとしても、何かが機能しない可能性があります。ただし、心配しないでください。正しく行う方法をすぐに説明できますが、ニュアンスの一部がわかりにくくなります。たとえば、アプリケーションを起動するときにIDEAが誘導するURLはどのように生成されるのでしょうか? 注意してみましょう。http://localhost:8080/dukes-age-7.0.1/にリダイレクトされました。これがどこから来たのか (/dukes-age-7.0.1/) を理解するために、GlassFish サーバーの管理パネルに移動してみましょう。左側のメニューで「アプリケーション」をクリックします。次に、dukes-age などのデプロイされたアプリケーションが表示されます。dukes-age アプリケーションを選択すると、Context-Root 項目を含むその特性の一部を確認できます。 Java EE開発用のローカル環境のセットアップ - 19dukes-age-7.0.1 はアプリケーションの名前とバージョンです。ルートポイント。dukes-age が処理するすべてのリクエストは、プレフィックス /dukes-age-7.0.1/ で始まる必要があります。したがって、ルート ポイントは /dukes-age-7.0.1 になります。また、アプリケーションが /webapi/dukesAge へのリクエストを処理することについても以前に説明しました。これら 2 つを組み合わせて構成を更新しましょう。
  1. これを行うには、IntelliJ IDEA に戻り、メニューに移動します: [実行] -> [構成の編集...]

  2. 以前に保存した構成を選択し、以下のスクリーンショットに従って URL を更新しましょう。

    Java EE開発用のローカル環境のセットアップ - 20
  3. 構成を保存し、Ctrl+Shift+F10 ホットキーを使用するか、[サービス] パネルの特別なボタンを使用してアプリケーションを再起動しましょう。

    Java EE開発用のローカル環境のセットアップ - 21
  4. 再起動後、すべてが正しく行われていれば、Duke の年齢が表示されます。

    Java EE開発用のローカル環境のセットアップ - 22
素晴らしい。デュークが24歳であることがついにわかりました。2020 年 4 月から始まる今後 2 ~ 3 か月以内に上記のすべての手順を繰り返さなければ、デュークはおそらく少し老化するでしょう。

結論

この記事では、GlassFish 4.0 サーバー、IntelliJ IDEA 2019.3.1 (Ultimate) 開発環境、および Java EE SDK バージョン 7 の例を使用して、Java EE アプリケーションで動作するようにローカル環境を構成する方法について説明しました。どのようにすれば:
  • Java EE SDKとGlassFishサーバーをダウンロードしてインストールします。
  • PowerShell 経由で GlassFish サーバーを停止および起動します。
  • Java EE アプリケーションを IDE から GlassFish サーバーにデプロイし、すぐに起動できるように IntelliJ IDEA を構成します。

ボーナスタスク

  1. 説明されているすべての手順を自分で繰り返します。
  2. Oracle の初心者 Java EE 開発者向けの Java EE 入門コースを受講してください。
  3. アスタリスクの付いた項目。2 番目の first-cup デモ アプリケーションを自分でデプロイしてみてください。このアプリケーションはよりインタラクティブであり、dukes-age アプリケーションとも対話します。このステップを完了するには、次の質問を自分で理解する必要があります。
    1. glassFish サーバー内のデータベースを有効にする方法。
    2. 2 つのアプリケーションを相互に統合する方法 (first-cup 内には、この記事で説明した dukes-age エンドポイントへのパスが示されています)。
    3. Intellij IDEA で最初のデプロイメント用に新しい構成を作成する方法 (この記事で説明したものと同様)。
    4. 他にもたくさんの質問があるかもしれません)
PS 参入障壁は高いですが、それがモチベーションになるのではないでしょうか?
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION