- Java EE SDK;
- Java EEアプリケーションサーバーGlassFish。
- IntelliJ IDEA のセットアップ。
- Java EE アプリケーションを使用するための作業環境を準備する方法を示します。
- IntelliJ IDEA から Java EE アプリケーションを GlassFish サーバーにデプロイして実行する方法を示します。
- Java EE 7 SDKをダウンロードしてインストールします。
- Java EEアプリケーションサーバーGlassFishを育ててみましょう。
- コマンドライン経由でサーバーを起動および停止する方法を学びましょう。
- このサーバーにアプリケーションをデプロイするように IntelliJ IDEA を構成しましょう。
- デモ アプリケーションをデプロイして実行してみましょう。このデモ アプリケーションは、GlassFish アプリケーション サーバーとともに Java EE 7 SDK に含まれています。
- グラスフィッシュ4.0;
- IntelliJ IDEA 2019.3.1 (究極);
- Java EE SDK 7。
Java EE SDKのインストール
重要な条件。Java EE SDK をインストールする前に、Java SE SDK がプリインストールされていることを確認する必要があります。-
まず、SDKをダウンロードする必要があります。これを行うには、検索エンジンに「Java EE SDK 7」と入力するか、Oracle Web サイトからSDK ダウンロード ページに直接アクセスします。
-
提供されている SDK のリストから、プラットフォームに適した SDK を選択する必要があります。この記事では、ディストリビューション「java_ee_sdk-7-jdk7-windows-x64-ml.exe」のインストールについて説明しています。
-
インストールファイルを実行します。起動中に次のエラーが発生する場合があります (エラーが発生しない場合は、そのままインストールを続行できます)。
これは、インストーラーがプリインストールされた Java ランタイム環境へのパスを見つけられなかったことを意味します。このエラーは、コマンド ラインを使用して JRE へのパスを手動で渡すことで修正できます。これを行うには、PowerShell を介してインストール ファイルを実行し、-j パラメーターを介してプレインストールされた JRE へのパスを渡す必要があります。
たとえば、次のようになります。
-
以降のインストール手順は、ほとんどのプログラムで非常に一般的なものです。[次へ] ボタンと [インストール] ボタンをクリックするだけです。
プログラムは Java EE SDK と GlassFish サーバーをインストールします。インストールが完了すると、起動して使用できるようになります。 -
GlassFish サーバーが動作していることを確認するには、インストールの完了後、 http://localhost:4848/にあるサーバー管理パネルを開くことができます。
以下のスクリーンショット:
コマンドライン経由での GlassFish の起動と停止
したがって、サーバーは稼働していますが、サーバーの起動はインストール プログラムによって開始されました。以下では、サーバーを自分で起動および停止する方法を理解していきます。まず、そのような実体をドメインとして明らかにしましょう。 ドメインは、 1 つの管理サーバーによって管理される 1 つ以上の GlassFish サーバー インスタンスのセットです。GlassFish サーバーをインストールすると、デフォルトのドメイン (domain1) が作成されます。次のコンポーネントが関連付けられています。- サーバーポート (デフォルトは 8080)。
- 管理サーバーのポート (デフォルトは 4848)。
- 管理者のユーザー名とパスワード (デフォルトは admin で、デフォルトではパスワードは必要ありません)。
asadmin start-domain domain_name
asadmin stop-domain domain_name
サブディレクトリC:\glassfish4\glassfish\bin から PowerShell を実行して、サーバーを停止してみます (インストール後にすでに実行されているため) 。 サーバーは停止しています。では、実行してみましょう:
最初の 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 テクノロジの最初のデモ バージョンが公開された 1995 年 5 月 23 日に生まれました。公爵年齢アプリは、名前が示すように、公爵の年齢に関する情報を提供します。IntelliJ IDEA でこのアプリケーションを開いてみましょう: ファイル -> 新規 -> 既存ソースからのプロジェクト... 次に、dukes-age アプリケーションが含まれるフォルダーに移動します。デフォルトではC:\glassfish4\docs\firstcup\example\dukes-にあります。 age で、ファイル pom.xml を選択して [OK] をクリックします。 次の構造を持つアプリケーションが開きます。 クラス コードを見てみましょう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 コンテキスト内のリソースです。
- クラスの上のアノテーションは、
@Path("dukesAge")
このクラスによって呼び出しが処理される URI パスを定義します。 - メソッドの上の注釈は、
@GET
このメソッドが GET リクエストを処理することを示しています。 - 注釈は、
@Produces("text/plain")
リクエストに対する応答のメディア タイプを指定します。getText()
このメソッドがメディア タイプ text/plain の応答を生成することを推測するのは難しくありません。
<?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 のセットアップ- これを行うには、[実行] -> [構成の編集] メニューに移動します。
- [実行/デバッグ構成] パネルが開きます。
- 新しい構成を追加する必要があります。これを行うには、プラス記号をクリックするか、Alt+Insert ホットキーを使用します。表示されたリストで、「GlassFish Server」->「Local」を選択します。
- 開いたウィンドウで、構成のセットアップを開始しましょう。
- 次のステップでは、サーバーにデプロイする必要があるアーティファクトを指定します。これは、[デプロイメント] タブでプラス記号 -> [アーティファクト...] をクリックして行うことができます。
- dukes-age:war を選択し、「OK」をクリックします。
- 次に、「適用」をクリックしてから「OK」をクリックして構成を保存します。
アプリケーションの起動
それでは、アプリケーションを実行してみましょう。-
これを行うには、ホットキー Alt+Shift+F10 を使用するか、メニューの [実行] -> [実行...] を使用します。
そして、作成した dukes-age 構成を選択します。
-
この後、[サービス] パネルに起動ログが表示されます。
-
その後、指示に従ってすべてを実行すると、ブラウザが開き、何も動作していないことがわかります。
-
これを行うには、IntelliJ IDEA に戻り、メニューに移動します: [実行] -> [構成の編集...]
-
以前に保存した構成を選択し、以下のスクリーンショットに従って URL を更新しましょう。
-
構成を保存し、Ctrl+Shift+F10 ホットキーを使用するか、[サービス] パネルの特別なボタンを使用してアプリケーションを再起動しましょう。
-
再起動後、すべてが正しく行われていれば、Duke の年齢が表示されます。
結論
この記事では、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 を構成します。
ボーナスタスク
- 説明されているすべての手順を自分で繰り返します。
- Oracle の初心者 Java EE 開発者向けの Java EE 入門コースを受講してください。
- アスタリスクの付いた項目。2 番目の first-cup デモ アプリケーションを自分でデプロイしてみてください。このアプリケーションはよりインタラクティブであり、dukes-age アプリケーションとも対話します。このステップを完了するには、次の質問を自分で理解する必要があります。
- glassFish サーバー内のデータベースを有効にする方法。
- 2 つのアプリケーションを相互に統合する方法 (first-cup 内には、この記事で説明した dukes-age エンドポイントへのパスが示されています)。
- Intellij IDEA で最初のデプロイメント用に新しい構成を作成する方法 (この記事で説明したものと同様)。
- 他にもたくさんの質問があるかもしれません)
GO TO FULL VERSION