第2回 Java Pet Storeで、J2EEを体験する(2)

丸山不二夫
稚内北星学園大学学長
(http://www.wakhok.ac.jp/)
2001/4/19
今回の内容

「J2EEとJava Pet Storeデモをダウンロードする」
J2SEのインストール
J2EEのダウンロードとインストール

Java Pet Storeデモのダウンロードとインストール
J2EEのデモを動かす前に確認すべきこと
「Java Pet Storeデモを動かす」
環境変数を設定する
データベースを起動する
J2EEサーバを起動する
deploytoolに、アプリケーション・ファイルを読み込む
J2EEサーバに、アプリケーションを「配置」する
Java Pet Storeデモを起動する

 第1回「Java Pet Storeで、J2EEを体験する(1)」では、Webとデータベースを結ぶ技術としてのJ2EEについて解説したあと、この講座で重点的に学ぶこと、Java Pet Storeデモを紹介しながらJ2EEサーバの機能について簡単に紹介しました。

 第2回では、実際にJ2EEの環境を構築し、Java Pet Storeのデモを動かしてみます。J2EEに慣れ親しむためにも自分でデモを動かしてみることは非常に重要なことですので、ぜひご自分でダウンロードして試してチャレンジしてください。

 

J2EEとJava Pet Storeデモをダウンロードする 

 J2EEとJava Pet Storeデモのインストールをしてみましょう。

■J2SEのインストール
 

 もちろん、Javaの環境がインストールされていることが前提です。SunのJavaの環境は、J2ME(Java2 Micro Edition)、J2SE(Java2 Standard Edition)、J2EE(Java2 Enterprise Edition)の3つに、大きく分かれており、それぞれのパッケージがダウンロード可能ですが、J2EEを動かすためには、J2SE(普通のJava環境のことです)が必要です(J2MEでも同じです)。できるだけ最新のバージョンのJavaを利用されることをお勧めします。

■J2EEのダウンロードとインストール 

 まず、J2EEをダウンロードしましょう。J2EEのホームページは、

  http://java.sun.com/j2ee/

です。ここから、Downloadを選んで、

  http://java.sun.com/j2ee/download.html

さらに進んで、

  http://java.sun.com/j2ee/j2sdkee/

 で、プラットフォームに応じて、j2sdkee-*_*_*.* という形のファイルをダウンロードします。比較的大きなファイルなので、ネットワークが細い場合には複数のファイルに分割してダウンロードすることもできます。最新版のJ2EEは、次のURLでダウンロード可能です(この連載では、ここからゲットした新しいバージョンのJ2EEを使っています)。

  http://developer.java.sun.com/developer/

 ダウンロードしたファイルは、Windows版でしたら、ダブル・クリックするだけでインストールが始まります。デフォルトでは、バージョンに応じて、C:\j2sdkee1.*.*というディレクトリにインストールされるはずです。

 J2EEでは、ドキュメントが別のパッケージで提供されています。これも大事な情報が
入っていますので、ぜひダウンロードして、インストールしてください。

Java Pet Storeデモのダウンロードとインストール

 今回の目的である、Java Pet Store デモですが、次のページの

  http://java.sun.com/j2ee/blueprints/

の中に、

  Java(TM) Pet Store Sample Application 1.1.1

というのがあるはずですので、このファイルをダウンロードし、インストールします。

(編集注:現在、Java Pet Store Sample Applicationは1.1.2にバージョンアップされたため、本稿で紹介しているバージョン1.1.1をダウンロードすることはできません。対応に向けて調整中です)



■ J2EEのデモを動かす前に確認すべきこと

 これでJ2EEを動かす準備は整ったのですが、Java Pet Store デモを動かす前に幾つかのことを、あらためて確認しておきましょう。

 第1に、Java Pet Storeデモは典型的な3ティアモデルに基づいているということです。第1回で見たように、Java Pet Store デモはWebアプリケーションとしてWebブラウザ上で動きます。同時に、大事なことはこの3ティアモデルのデモを動かすためには、Webブラウザのほかにデータベースとミドルウェア・サーバの2つが必要だということです。以下の説明では、この3つの働きを1つのマシン上で同時に走らせますが、それは便宜的なことです。

 もしも、ネットワーク上で、自由に使える3つのマシンがあるのでしたら、それぞれに、Webブラウザ用、ミドルウェア・サーバ用、データベース用と、役割を割り当てることができます。

 第2に、Webブラウザとデータベースの間に位置するミドルウェア・サーバこそが、J2EEの本体ともいえるJ2EEサーバです。正確にいうと、J2EEサーバは1つのサーバではなくて、JSPに対応したWebサーバ、EJBコンテナのサーバ、JNDIネームサービスのサーバなどたくさんのサーバの集合体です。J2EEサーバを立ち上げると、これらのサーバが自動的に一斉に立ち上がることになります。

 第3に、Java Pet Store デモのようなJ2EEアプリケーションとJ2EEサーバの関係です。どんなJ2EEアプリケーションを動かすためにもJ2EEサーバは必要なのですが、J2EEサーバだけでは何の働きも行えません。それは、Webのサーバがあっても、WebのページがなければWebのサービスは成り立たないのと同じです。J2EEサーバに、特定のJ2EEアプリケーションのサービスを割り当てることを、アプリケーションを「deploy(配置)する」といいます。Java Pet Storeデモを動かすためには、J2EEサーバを起動するだけでは不十分で、J2EEサーバにJava Pet Storeデモをdeploy(配置)する必要があります。

 第4に、J2EEサーバがJSPサーバやEJBコンテナサーバの集合体であるように、J2EEアプリケーションも、JSPページやEJBコンポーネントといった複数の要素から構成されています。しかし、複数のサーバ機能も1つのJ2EEサーバで代表されるように、J2EEアプリケーションも1つのファイルにまとめられています。J2EEでは、J2EEアプリケーションは*.earという識別子を持つ1つのファイルという実体を持つのです。例えば、Java Pet Storeデモは、後の回で見るように、petstore.earという名前の1つのファイルにまとめられています。

 

Java Pet Store デモを動かす

 基本的なポイントは確認しました。いよいよJava Pet Store デモを動かしてみることにしましょう。以下の操作は、Windows環境でのものですが、DOS窓を立ち上げてその中でコマンドを実行しています。

■環境変数を設定する

 DOS窓で、JAVA_HOMEJ2EE_HOMEの2つの環境変数を設定します。前者には、Java(J2SE)がインストールされたディレクトリを、後者にはJ2EEをインストールしたディレクトリを指定します。僕の例では、次のようになります。

set JAVA_HOME=c:\java\jdk1.3.1
set J2EE_HOME=c:\java\j2sdkee1.3

 もしも、データベースとしてJ2EEに標準で添付されているCloudscapeデータベース以外のデータベースを使うのでしたら、そのデータベースのドライバのある場所を、J2EE_CLASSPATHという名前の環境変数に設定しておかなければいけません。次の例は、データベースにCloudscapeではなくOracleを使う場合の設定例です。

set J2EE_CLASSPATH=C:\oracle\jdbc;C:\db\driver.zip

■ データベースを起動する

 まず、データベースを起動しましょう。%J2EE_HOME%\binディレクトリに移動して、「cloudscape.bat」コマンドを実行します。

start cloudscape -start

 先頭のstartは、このプログラムを、別のDOS窓で実行させます。このコマンドが実行されると、別のDOS窓を開いて、その中で、コマンド「cloudscape -start」が実行されます。そうしますと、次のようなメッセージが表示されるはずです。

Thu Mar 15 14:57:09 JST 2001: [RmiJdbc] COM.cloudscape.core.JDBCDriver registered in DriverManager
Thu Mar 15 14:57:09 JST 2001: [RmiJdbc] Binding RmiJdbcServer...
Thu Mar 15 14:57:09 JST 2001: [RmiJdbc] No installation of RMI Security Manager.
..
Thu Mar 15 14:57:10 JST 2001: [RmiJdbc] RmiJdbcServer bound in rmi registry

 これで、データベースのサーバは立ち上がりました。あとは、何のメッセージも出ないかもしれませんが、データベースのサーバが動いている限り、このウィンドウを閉じてはいけません。

 データベースのサーバは立ち上がったのですが、このままではデータベースは空っぽのままです。データベースにJava Pet Storeデモ用のデータを入れる必要があります。 このデモでは、そのためのコマンドが用意されています。今、%J2EE_HOME%のすぐ下に、Java Pet Storeデモ「jps1.1.1」がインストールされているとします。この時、次のディレクトリ%J2EE_HOME%\jps1.1.1\database.sqlに移動して「populate.bat」を実行します。

start populate

 この時、新しいウィンドウには沢山のメッセージが表示されるはずです。いったん、データベースの形成が終わればこのウィンドウは終了してかまいません。

■J2EEサーバを起動する

 いよいよJ2EEサーバの起動です。J2EEのバージョンが1.2.1の場合は%J2EE_HOME%\configディレクトリにあるdefault.propertiesというファイルの中の1行を次のように変更します。

変更前
jdbc.datasources=jdbc/Cloudscape|jdbc:cloudscape:rmi:
CloudscapeDB;create=true

変更後
jdbc.datasources=jdbc/EstoreDB|jdbc:cloudscape:rmi:CloudscapeDB;
create=true|jdbc/ InventoryDB|jdbc:clouds cape:rmi:CloudscapeDB;create=true

 再び、%J2EE_HOME%\binディレクトリに移動して「j2ee.bat」を実行します。

start j2ee -verbose

 オプション「verbose」は、J2EEサーバにたくさんのメッセージを出力させます。次にJ2EE1.3のメッセージの一部を示します。このウィンドウも閉じてはいけません。

J2EE server listen port: 1050
Naming service started:1050
Binding DataSource, name = jdbc/DB2, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/DB1, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/EstoreDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/Cloudscape, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
Binding DataSource, name = jdbc/InventoryDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true

■deploytoolに、アプリケーション・ファイルを読み込む

 J2EEサーバが立ち上がったら、今度はアプリケーションをJ2EEサーバにdeploy(配置)します。このために、%J2EE_HOME%\binディレクトリの「deploytool.bat」コマンドを使います。

start deploytool

 この時、次のようなGUI(画面1)が立ち上がるはずです。このパネルの左側のserversの中のlocalhostは、J2EEサーバがdeplpytoolと同じマシン(localhost)上で走っていることを表わしています。

画面1 Application Deployment Toolでアプリケーションの配布を行う
(クリックすると拡大します)

 [File]メニューから[Open...]を選ぶ(画面2)画面3のようなファイル選択のウィンドウが開きますので、ファイル%J2EE_HOME%\jps1.1.1\petstore.earを選択して[Open Object]ボタンを押します。

画面2 [File]メニューから[Open...を選ぶ
(クリックすると拡大します)
画面3 ファイルを選択する
(クリックすると拡大します)

 そうすると、このファイルが読み込まれて、左側のパネルのFilesの下のApplicationsの下にpetstoreが表示されます(画面4)

画面4 pet Store Shopデモ「petstore」の構成が表示される
(クリックすると拡大します)

 このとき右側のパネルでは[General]というタブが開いているのですが、画面5は[JNDI Names]というタブを開いたときのものです。これらの情報の意味については今回は説明を省きます。

画面5 [JNDI Names]タブを開いたところ(クリックすると拡大します)

 次の画面6は、右側のパネルで[Security]タブを開き、左側ではpetstoreを構成しているコンポーネントの中身を調べています。これから、例えばpetstoreアプリケーションのCustomer Componentが、TheCustomerとTheAccountとTheOrderという3つのBeansから構成されていることが分かります。

画面6 アプリケーションの構成要素を調べることができる
(クリックすると拡大します)


■J2EEサーバに、アプリケーションを「配置」する

 これで、J2EEサーバに、petstoreアプリケーションをdeployする準備ができました。[Tools]メニューから、[Deploy...]を選びます(画面7)

画面7 [Deploy...]コマンドからアプリケーションのdeployの操作を開始する
(クリックすると拡大します)

  そうすると、次のようなウィンドウ(画面8)が開きますので、[Next]を押します。次に画面が出てきますが[Next]を押していきます。

画面8 [Next]ボタンを押していく(クリックすると拡大します)

 最後の画面で[Finish]を押すと(画面9)、アプリケーションのdeployの作業が始まります。

画面9 [Next]ボタンを押していく(クリックすると拡大します)


 アプリケーションのdeployの様子が表示されます(画面10)

画面10 deployの経過が表示される (クリックすると拡大します)

  この時、次のようなメッセージが見られるはずです。

Deploy the application in C:\java\j2sdkee1.3\jps1.1.1\petstore.ear on the server
localhost saving the client jar as null
Sender object Deploy Tool : Deploy petstore on localhost
Remote message: Contacted Server....
Remote message: Application petstore transferred.
Remote message: petstore has 9 ejbs, 1 web components to deploy.
Remote message: Deploying Ejbs....
Remote message: Processing beans ....
Remote message: Compiling wrapper code ....
Remote message: Compiling RMI-IIOP code ....
Remote message: Making client JARs ....
Remote message: Making server JARs ....
Remote message: Contact the web server and ask it to run:
c:\java\j2sdkee1.3\repository\fujio\applications\petstore984736453506Server.jar .
Remote message: Web Components Deployed..
Remote message: Deployment of petstore is complete..
Sender object Deploy Tool : client code at http://10.16.18.24:9191/petstoreClient.jar

 deployが終了したら[OK]ボタンを押します。

■Java Pet Storeデモを起動する

 deployの終了とともに、J2EEサーバはpetstoreアプリケーションのサービスを開始します。アプリケーションを利用するためには、まずWebのブラウザを立ち上げなければなりません。そこでURLにhttp://localhost:8000/petstore/を指定します。そうすると、次のような画面が現れるはずです。

画面11 Java Pet Storeデモのスタートページ
(クリックすると拡大します)

  ここで、Enter the Storeのリンクをたどれば、Java Pet Storeの最初の画面が見えるはずです。あとは、自由にこのお店で遊んでみてください。

画面12 Java Pet StoreデモのTOPページ
(クリックすると拡大します)

 今回は、もっぱらJava Pet Storeデモを動かすことに集中しました。一度このスタイルを体験することは大事なことです。ぜひ、実際に試してみてください。

 次回は「JSPが可能にする動的なページ作成」をお届けします。

連載内容
J2EEの基礎
  第1回 Java Pet Storeで、J2EEを体験する(1)
第2回 Java Pet Storeで、J2EEを体験する(2)
 

第3回 J2EEアプリケーションと配置(deployment)

  第4回 J2EEアプリケーションを構成するコンポーネント
  第5回 データベースのブラウザを作る
  第6回 EJBにおけるコンテナとコンポーネント
  第7回 J2EEのセキュリティのキホンを知る
  第8回 J2EEのトランザクション処理


連載記事一覧




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間