0
Java Pet Store 2.0 を WebOTX 上で
動作させる方法
2008 年 9 月
初版
NEC
第二システムソフトウェア事業部
1
目次
U1. はじめに
U...2
U2. Pet Store 2.0 の特徴
U...3
U2.1 Java EE 5 の活用
U...3
U2.2 動作環境
U...4
U3. GlassFish上で動作させるための手順
U...6
U3.1 プログラムのインストール
U...6
U3.2 起動手順
U...7
U3.3 データソースの作成
U...8
U3.4 コンパイルと配備
U...8
U3.5 ブラウザ表示
U...8
U4. WebOTX上で動作させるための手順
U... 10
U4.1 プログラムのインストール
U... 10
U4.2 設定の書き換え
U... 11
U4.3 データベースの設定
U... 13
U4.4 起動手順
U... 13
U4.5 データソースの作成
U... 14
U4.6 コンパイルと配備
U... 15
U4.7 ブラウザ表示
U... 15
2
0B
1. はじめに
Java Pet Store 2.0 とは、Sun Microsystems 社が、Java Enterprise Edition 5 (Java EE 5) の仕様を検証する ことを目的として作成した、オープンソースのWeb アプリケーションサンプルです。インターネット上の仮想的なペッ ト販売サイトで、Java EE 5 の仕様に基づいた様々な機能を提供しています。Web アプリケーションサーバを用いた システムの開発者は、このサンプルを用いて Java EE 5 に準拠したシステム構築をシミュレートすることができ、シ ステムの設計や実装に大いに役立てることができます。
Pet Store 2.0 は、Java EE 5 に準拠したあらゆる Web アプリケーションサーバ上で動作するように作られていま すが、動作環境依存の部分は、Sun Microsystems 社が公開している参照実装のWeb アプリケーションサーバ、 「GlassFish」に対応しています。そのため、他の Web アプリケーションサーバ上で動作させるためには、その環境 依存部を修正する必要があります。
本ドキュメントでは、GlassFish 上で Pet Store 2.0 を動作させる手順について説明した後、WebOTX V8.1 上 で動作させる方法について説明します。GlassFish は、GlassFish プロジェクトが Java EE 5 アプリケーションサ ーバのオープンソース開発を目的として作成したWeb アプリケーションサーバです。GlassFish は、CDDL ライセ ンスの下で誰もが自由にソースコードにアクセスし、閲覧することができ、ライセンス条項を満たす範囲でソースコ ードを変更、修正することも可能です。 このドキュメントの目的は、GlassFish、WebOTX という 2 種類の Web アプリケーションサーバを用いることによ り、環境依存的な部分を明確にするとともに、Web アプリケーションサーバがデータベースサーバを内部に持つ場 合と外部に持つ場合で、システム構築過程にどのような違いが生じるのかを読者が実際に操作しながら理解でき るようにすることです。
Pet Store 2.0 の詳細は、下記の URL を参照してください。 https://blueprints.dev.java.net/petstore/
3
1B
2. Pet Store 2.0 の特徴
4B
2.1 Java EE 5 の活用
Pet Store 2.0 は、2006 年にリリースされた Java EE 5 仕様の機能を利用しています。Java EE 5 で新たに取 り入れられたAjax 技術、JPA (Java Persistence API)、JTA (Java Transaction API)、JSF (Java Server Faces) などを利用することで、Web アプリケーションにおける操作性の向上や、システム全体における開発工程 の軽減を図っています。
例えば、Pet Store 2.0 の Catalog や Home のページは、Ajax 技術を用いることにより、画面を切り替えること なく一部の画像や文字を変更、あるいは移動させる機能を実現しています。この技術は、Google Map を用いてペ ットの居場所を検索する機能や、最新のニュースをRSS によって表示させる機能にも利用されています。また、オ ブジェクト指向における「オブジェクト」と「リレーショナルデータベースの内容」の対応付けでは、O/R マッピングを 利用するためにJPA が用いられています。その結果、システム開発過程における、データベース操作に関わる煩 雑な作業を大幅に簡素化しています。 <Catalog ページ>
4
5B2.2 動作環境
Pet Store 2.0 は、3 層構造のアプリケーションシステムをモデルとしています。3 層構造は、プレゼンテーション 層、ビジネスロジック層、データベース層から成り、それぞれの層は機能的に独立しています。このような階層構造 は、ビジネスロジックやデータベースサーバにおける変更が他の層に影響を及ぼさないため、開発・保守において、 機能ごとに役割を分担することが容易となり、大規模開発に大変適しています。現在は、このような 3 層構造アー キテクチャが一般的です。 エンタープライズレベルのサービスを提供する場合、ビジネスロジック層において Enterprise JavaBeans (EJB) が用いられますが、ビジネスロジックからのリクエストがそれほど多くない動的アプリケーションの場合、 EJB を使わず、JSP/サーブレットだけで実装するのが一般的です。Pet Store 2.0 では、EJB を使わず、JSP/サ ーブレットだけで実装を行っています。そのため、WebOTX Application Server (WebOTX AS) 製品の全ての エディションで動作させることができます。ただし、Web アプリケーションサーバは、Java EE 5 の仕様に準拠して いる必要があります。本ドキュメントの作成にあたっては、WebOTX AS Web Edition V8.1 と WebOTX AS Standard-J Edition V8.1 上での動作を、それぞれ Windows 上で確認しました。そのため、文中では Windows における表記、表現を 使用しています。パスの表記において「¥」を用いていますが、Linux や HP-UX、Solaris では「/」を使用してくださ い。また、ペットに関する様々な情報や画像は、データベースに保存されます。今回は、データベースに Java DB を使用しています。
<WebOTX AS Web Edition を使用した場合のシステム構造>
Webブラウザ
JSP
Servlet
Webコンテナ
Webサーバ
データベース
プレゼンテーション層
ビジネスロジック層
データベース層
WebOTX
WebOTX
AS Web Edition
AS Web Edition
Webブラウザ
JSP
Servlet
Webコンテナ
Webサーバ
データベース
プレゼンテーション層
ビジネスロジック層
データベース層
WebOTX
5
<WebOTX V8.1 の対応 OS 一覧>
Windows
Linux
・Windows Server® 2008 Standard Edition ・Windows Server® 2008 Enterprise Edition ・Windows Server® 2008 Datacenter Edition ・Windows Server® 2003 R2, Standard Edition ・Windows Server® 2003 R2, Enterprise Edition ・Windows Server® 2003 R2, Datacenter Edition ・Windows Server® 2003, Standard Edition
・Windows Server® 2003, Enterprise Edition ・Windows Server® 2003, Datacenter Edition
・Red Hat Enterprise Linux AS/ES 4.0 ・MIRACLE LINUX V4.0
(*)SE Linux 設定を有効化した場合は未サポート です。無効化にしてください。
6
2B
3. GlassFish上で動作させるための手順
現在、最新版の GlassFish V2 は、JDK 5.0 以上の Java 環境で動作します。また、データベースである Java DB も内蔵しています。 6B
3.1 プログラムのインストール
① Java 実行環境 (JDK 5.0 以上) インストールしたフォルダを、「(Java インストールフォルダ)」とします。 下記のように Path 環境変数の設定を行ってください。 ¾ JAVA_HOME=(Java インストールフォルダ)¾ システム環境変数の Path に「(Java インストールフォルダ)¥bin;」を追加
(C ドライブ直下の C:¥jdk1.5.0_16 へインストールした場合の例) ② GlassFish (Java DB を含む) 下記の URL から「glassfish-installer-v2ur2-b04-windows.jar」ファイルを適当なフォルダにダウ ンロードしてください。 まず、ダウンロードした JAR ファイルを使って GlassFish をインストールします。 (C ドライブ直下の C:¥glassfish へインストールした場合の例) JAR ファイルを C ドライブ直下に配置し、MC-DOS プロンプト画面で次のコマンドを実行します。
展開後にできた glassfish フォルダで、以下のように ant を実行すると GlassFish のセットアップが完了しま す。
> cd glassfish
> lib¥ant¥bin¥ant –f setup.xml
> java –Xmx256m –jar glassfish-installer-v2ur2-b04-windows.jar JAVA_HOME=C:¥jdk1.5.0_16
Path=%JAVA_HOME%¥bin;C:¥WINDOWS¥system32;C:¥WINDOWS;...
HU
7
インストールしたフォルダを、「(glassfish インストールフォルダ)」とします。 ①と同様に、Path 環境変数の設定を行ってください。
¾ システム環境変数の Path に「;(glassfish インストールフォルダ)¥bin」を追加
(C ドライブ直下の C:¥GlassFish¥glassfish へインストールした場合の例)
②
Pet Store 2.0 下記の URL から「javapetstore-2.0-ea5-installer.jar」をダウンロードし、適当なフォルダに展開し てください。 インストールしたフォルダを「(Pet Store インストールフォルダ)」とします。 7B3.2 起動手順
GlassFish の起動手順は、最初にデータベース・サーバを起動し、次に Web アプリケーションサーバ、GlassFish を起動します。 ①データベース・サーバの起動 まず、データベースを起動させてください。GlassFish に付属しているデータベースは、以下のコマンドにより起 動・停止させることができます。 ②Web アプリケーションサーバの起動 次に、アプリケーションサーバを起動させてください。GlassFish アプリケーションサーバは、以下のコマンドにより 起動・停止させることができます。
>(GlassFish インストールフォルダ)¥bin¥asadmin start-database (起動) >(GlassFish インストールフォルダ)¥bin¥asadmin stop-database (停止)
>(GlassFish インストールフォルダ)¥bin¥asadmin start-domain domain1 (起動) >(GlassFish インストールフォルダ)¥bin¥asadmin stop-domain domain1 (停止)
HU
https://blueprints.dev.java.net/servlets/ProjectDocumentList?folderID= 5315&expandFolder=5315&folderID=0U
Path=;
C:¥GlassFish¥glassfish¥bin;C:¥WINDOWS¥system32;C:¥WINDO
WS;...
8
8B
3.3 データソースの作成
Pet Store 2.0 の動作で必要なデータソースの値は、下記のコマンドを用いてサーバ側へ登録することができま す。
登録される情報については、「(Pet Store インストールフォルダ)/bp-project/app-server-ant.xml」 ファイルの内容が反映されます。 9B
3.4 コンパイルと配備
コンパイル、配備、ブラウジングは、Pet Store 2.0 においては以下のコマンドで、全て行うことができます。 アプリケーション画面を表示させるブラウザは、「build.properties」ファイル内で指定することができます。 OS が Windows あるいは Mac の場合、デフォルトでブラウザ表示させることができますが、それ以外の場合は、ブ ラウザの実行ファイルがある場所を下記のように指定してください。 default.browser=(ブラウザの実行ファイルがある場所) 10B3.5 ブラウザ表示
データソースの作成、コンパイル、配備が全て成功すると、下記の画面がブラウザに表示されます。 >(Pet Store インストールフォルダ)¥ant run9
10
3B
4. WebOTX上で動作させるための手順
2008/9/1 現在、最新版の WebOTX V8.1 は、Java EE 5 に準拠しています。WebOTX はデータベース・サーバを 含んでいないため、別途インストールするか既存のデータベース・サーバを利用する必要があります。今回は、 Java SE 6 に付随している Java DB をインストールし、使用します。
11B
4.1 プログラムのインストール
① Java 環境 (Java SE 6) と Java データベース
下記の URL から Java SE 6 の最新版 JDK をインストールしてください。(2008/9/1 現在の最新版は、JDK 6 Update 7 です。) インストール途中に、Java DB のインストールオプションにチェックがあることを確認してください。インストールし たフォルダを、それぞれ「(Java インストールフォルダ)」、「(Java DB インストールフォルダ)」とします。それぞれ Path 環境変数の設定を行ってください。 ¾ JAVA_HOME=(Java インストールフォルダ)
¾ システム環境変数の Path に「;(Java インストールフォルダ)¥bin」を追加
(C ドライブ直下の C:¥jdk1.5.0_16 へインストールした場合の例)
¾ DERBY_HOME=(Java DB インストールフォルダ)
¾ システム環境変数の Path に「;(Java DB インストールフォルダ)¥bin」を追加
(C ドライブ直下の C:¥Sun¥JavaDB へインストールした場合の例) JAVA_HOME=C:¥jdk1.5.0_16
Path=%JAVA_HOME%¥bin;C:¥WINDOWS¥system32;C:¥WINDOWS;...
11
② WebOTX AS
Pet Store 2.0 は EJB を使用していないため、全ての WebOTX AS V8 のエディションで動作しますが、Java EE 5 に準拠していることが動作要件です。そのため、ここでは現在最新の WebOTX AS Standard-J Edition V8.1 をイン ストールします。インストールしたフォルダを、「(WebOTX インストールフォルダ)」とします。
③ Pet Store 2.0
3.1 節と同様にインストールを行ってください。
12B
4.2 設定の書き換え
「(Pet Store インストールフォルダ)¥bp-project」配下には、データソースの作成、コンパイル、配備を行う 際に必要となる定義ファイルが多数存在します。
この工程では、ant を実行することにより開始されますが、その時、これらの定義ファイル群を使用します。ant の 実行により、まず「(Pet Store インストールフォルダ)」配下の「build.xml」ファイルが読み込まれます。この XML ファイルの中で、同じディレクトリにある「bp-project.xml」ファイルが読み込まれ、さらに、その XML ファイ ルの中から「(Pet Store インストールフォルダ)¥bp-project」配下の「main.xml」ファイルが読み込まれま す。以下、同様に連鎖的にファイルが読み込まれる仕組みになっています。したがって、読み込まれる定義ファイ ルの内容を利用環境に合うように書き換える必要があります。 Pet Store 2.0 で は 、 デ ー タ ソ ー ス の 作 成 に 利 用 す る コ マ ン ド や そ れ に 付 随 し た オ プ シ ョ ン を 、 「app-server-ant.xml」ファイルにまとめて記述しています。また、Web アプリケーションサーバや、データベー スの定義については、拡張子「.properties」のファイルに記述しています。書き換えた内容の詳細は、以下、 「<書き換えた内容>」 に記述しています。 なお、書き換え済みのファイルは zip 形式で圧縮し下記に置いてありますので、それぞれ上書きコピーし、適宜 利用してください。 (本ドキュメントのファイル)¥PetStore_webotx.zip この圧縮ファイルにアーカイブされたファイル群は、次に示した Pet Store インストールフォルダにコピーしてくだ DERBY_HOME=C:¥Sun¥JavaDB
12
さい。
app-server.properties、app-server-ant.xml、build.properties ⇒ (Pet Store インストールフォルダ)¥bp-project
javadb.properties、setup.xml
⇒ (Pet Store インストールフォルダ)¥setup
<書き換えた内容> ● app-server-ant.xml
運用管理コマンドに関して、GlassFish では asadmin を使用しましたが、WebOTX では otxadmin を使用しま す。GlassFish では、データソースを作成するために、2 種類のコマンド「create-jdbc-connection-pool」、 「create-jdbc-resource」による、二段階の操作が必要です。一方、WebOTX ではこの工程を単一のコマンド 「create-jdbc-datasource」で行うことができます。また、コマンドに付随するオプション規則にも違いがある ため、マニュアルにしたがって WebOTX 用に書き換えています。 ● app-server.properties javaee.home=(WebOTX インストールフォルダ) javaee.server.username=(WebOTX ユーザ名) javaee.server.password=(WebOTX パスワード) db.home =(Java DB インストールフォルダ) db.user=(Java DB ユーザ名) [*] db.password=(JavaDB パスワード) [*] db.sid=(接続先データベース名) [*]
[*]
上記 Java DB のユーザ名とパスワードは任意です。データベースにインスタンスを作成する際、データソー スを作成する際に必要になります。 ● build.properties Web アプリケーションサーバに関する情報を、環境に合わせて書き換えてください。 javaee.home=(WebOTX インストールフォルダ) javaee.server.name=(WebOTX サーバ名) javaee.server.port=(WebOTX ポート番号) javaee.adminserver.name=(WebOTXadmin サーバ名)13
javaee.adminserver.port=(WebOTXadmin サーバポート番号) javaee.server.username=(WebOTX ユーザ名) javaee.server.password=(WebOTX パスワード) ● javadb.properties 先に説明した app-server.properties ファイルへ記述した、任意の接続先データベース名を記述してくだ さい。 db.sid=(接続先データベース名) [*] 13B4.3 データベースの設定
1. ドライバの登録WebOTX から Java DB への接続を可能にするためには、Java DB の JDBC ドライバ 「derbyclient.jar」を WebOTX に登録する必要があります。下記の場所にある JDBC ドライバを「(WebOTX インストールフォル ダ)¥domains¥domain1¥lib¥ext」にコピーしてください。 (Java DB インストールフォルダ)¥lib¥derbyclient.jar 2. インスタンスの生成 「(Java DB インストールフォルダ)¥bin」にある、「startNetworkServer.bat」を実行し、データベース・ サーバのネットワーク接続を開始してください。次に、同じ場所にある「ij.bat」を実行した後、下記のコマンドを 用いてデータベース上にインスタンスを作成してください。 ただし、下記の項目に関してはデータソース作成時に決めた任意の名前に書き換えてください。 localhost/testdb=(Web アプリケーションサーバのホスト名)/(接続先データベース名) user=(Java DB ユーザ名) password=(Java DB パスワード) 14B
4.4 起動手順
① まず、データベース・サーバを起動します。 WebOTX の otxadmin 運用管理コマンドにより、起動・停止させることができます。 > connect 'jdbc:derby://localhost/testdb;;user=test;password=test; create=true;';14
② 次に WebOTX AS を起動します。 ①と同様に、WebOTX の otxadmin 運用管理コマンドにより、起動・停止させることができます。 15B4.5 データソースの作成
3.4 節と同様に、以下のコマンドを用いてデータソースを作成してください。このとき、反映される 「(Pet Store インストールフォルダ)/bp-project/app-server-ant.xml」ファイルは 4.2 節で書き換えたものです。 実行途中で、コマンドプロンプト上に「コマンド create-jdbc-datasource は正常に実行されました。」と表 示されれば、データソース作成は成功です。 データソースが作成された後、それが利用可能な状態にあるかを、以下のコマンドを用いてテストしてください。 オプションとして、「(WebOTX ユーザ名)」、「(WebOTX パスワード)」、「(データソース名)」が必要です。 「コマンド ping-jdbc-datasource は正常に実行されました。」と表示されれば、データソースは利用できる 状態にあります。データソースがうまく作成されていない場合は、以下のコマンドにより、setup を解除し、設定を確 認してください。>(WebOTX インストールフォルダ)¥bin¥otxadmin start-domain domain1 (起動) >(WebOTX インストールフォルダ)¥bin¥otxadmin stop-domain domain1 (停止)
>(WebOTX インストールフォルダ)¥bin¥otxadmin ping-jdbc-datasource –u (WebOTX ユーザ名) –w (WebOTX パスワード) (データソース名)
>(WebOTX インストールフォルダ)¥bin¥otxadmin start-database (起動) >(WebOTX インストールフォルダ)¥bin¥otxadmin stop-database (停止)
>(Pet Store インストールフォルダ)¥ant setup
15
16B4.6 コンパイルと配備
3.5 節と同様に、コンパイルと配備を行います。 17B4.7 ブラウザ表示
コンパイルと配備が成功すると、3.6 節と同様、ブラウザに「Enter the Store」と書かれた画面が表示されま す。この文字をクリックすると、Pet Store 2.0 の Home ページが表示されます。
一旦、配備に成功すれば、ブラウザに直接下記の URL を入力することによっても、ページを表示することができ ます。
HU
http://localhost/petstore/U