Pet Store1.4デモをWebOTXで動作させる方法 (2006年11月9日時点) |
|
このドキュメントではWebOTX V6.5を利用して、Sun Microsystems(以降、Sunと略します)がウェブサイトで提供しているJ2EEアプリケーションのサンプル「Pet Store」を動作させるまでの手順を説明します。
Pet Storeサンプルアプリケーションの動作にはWebOTX V6.5のほかに、データベースサーバが必要です。これはアプリケーションの構成上、商品の情報や顧客の情報、取引の情報をデータベースに保存する必要があるからです。今回はOracleを使用します。
|
|
1. Pet Storeの特徴 |
|
Pet Storeは、ペットの販売サイトを模したサンプルアプリケーションです。 Pet Storeのソースコードの構成は、J2EEプラットフォームで動作する拡張性、移植性、保守性の高いアプリケーションの例となっています。
|
|
Pet Storeの画面
|
|
WebOTXを用いてシステム構築を行う開発者にとって、Pet Storeには以下のような特徴があります。
1.1. 3層構成システム
Pet Storeデモは多層構造システムをモデルにした構成例となっています。
大規模な人員で開発を行う際、生産性を高めるために、システムを多階層に分離することが推奨されます。機能的に階層化することで、各システムを役割で切り分けることができ、複数のサブチームそれぞれで開発範囲を明確にすることができます。そして、インタフェースさえ事前に取り決めておけば、他のチームの内部実装を意識せずに平行開発を行うことができます。
また、メインフレーム等他のプラットフォームで動作しているシステムやデータベースを多層構造システムの1層と考えれば、そのインタフェースを経由する構造を採ることによって、既存システム(Sunの文書では「エンタープライズ情報システム」と呼んでいます)とJ2EEシステムを容易に統合することが可能になります。WebOTXにはJDBC、JCAなどの既存システムとの接続を可能にするJ2EE標準APIが用意されています。
Pet Storeデモでは、J2EEでのシステム開発に一般的に使われている3層モデルが用いられています。
-
プレゼンテーション層
HTML、JSP、サーブレットを用いて、クライアントに対話型コンテンツを提供します。
-
アプリケーション層
ビジネスロジックが動作します。EJB(Enterprise JavaBeans)が用いられます。
-
データベース層
永続データを保管します。本ドキュメントではOracleを使用します。
|
|
|
|
1.2. J2EE APIの使用例
Pet StoreデモはEJB(Session Bean、Entity Bean、メッセージドリブンBean)、サーブレット、JSP、JMS等J2EEの主要な機能を多く使用しているため、開発者はPet Storeデモでの実装方法や使用方法を手本にしながら開発を行うことができます。
|
|
2. WebOTXのインストール |
|
Pet StoreデモはEJBを使用しているため、WebOTX Web Editionでは動作しません。
EJBコンテナを備えた、WebOTX V6.5 Standard-J Edition以上をインストールします。
なお、Standard/Enterprise Editionを利用する場合は、インストール時に「マルチプロセスモード」(Webコンテナがプロセスグループ上で動作するモード)(*)を選択してください。
これはPet Storeのプログラムでは、サーブレットからEJBを呼び出す際、ローカルインタフェースを使用しているためであり、WebコンテナとEJBコンテナが同一プロセス上で動作している必要があるからです。
(*)マルチプロセスモードは、WebOTX V6.5から導入されました。これを使うことでWebコンテナ上で動作するWebアプリケーションを、WebOTXが提供するTPモニタ上で監視可能、かつマルチプロセスでの並列処理が可能となるため、Webシステムの信頼性・性能の向上を実現します。 それに対しシングルプロセスモード(V6.4までの構成)では、それらの機能を使用することができません。
|
|
3. 必要なファイルの準備 |
|
|
|
3.1. Pet Storeサンプル入手
Sunのダウンロードのページの、"Samples Bundle"から入手してください。2006年11月9日現在、J2EE 1.4用の最新版は1.4_03となっています。
ダウンロードしたzipファイルを適当なディレクトリに展開してください。以後本手順書では、展開したディレクトリをサンプルインストールディレクトリとし、
(petstore_root) = (サンプルインストールディレクトリ)/samples/blueprints/petstore1.4/src
として説明を進めていきます。
|
3.2. 提供ファイル「wo_petstore.zip」のダウンロード
設定の書き換えを行うため、wo_petstore.zipをダウンロードしてください。その後適当なディレクトリに展開してください。次のフォルダに展開されます。
展開してできたsamplesフォルダを、サンプルインストールディレクトリに上書きコピーしてください。
ここでは主に、アプリケーション・サーバ(WebOTX)固有の配備記述子をコピーしています。
J2EEの仕様では、アプリケーション・サーバにインストール(配備、またはデプロイ)するアプリケーションのアーカイブ形式を規定しています。そのアーカイブには、配備記述子と呼ばれるアプリケーション実行時の振る舞いを定義したXMLファイルを含めなければなりません。Web-WARファイルの場合なら、「WEB-INF/web.xml」が相当します。
このような規則によって、J2EEアプリケーションは環境に依存しないソースコードと、実行時環境に依存する部分の設定を含めた配備記述子を分離することで、ソースコードの移植性を高めています。実際、このドキュメントではPet StoreのJavaソースコードには一切手を加えていません。
しかしながら、J2EE仕様が規定する配備記述子の範囲ではアプリケーション・サーバの能力を活かしきれない問題が生じます。それを解決するために、一般にアプリケーション・サーバのベンダは、独自に提供するサーバ側の機能に関する情報を、ベンダ固有の配備記述子で定義しています。 WebOTXにも、独自の配備記述子ルールがあります。それを、ここではPet Store用に合わせて、wo_petstore.zipファイルに収めています。
|
|
4. ファイルの修正 |
|
|
|
4.1. common.propertiesの設定
(サンプルインストールディレクトリ)/samples/common.propertiesファイル内の以下の項目を設定します。
- webotx.home=(WebOTXインストールディレクトリ)
- com.sun.aas.javaRoot= (javaインストールディレクトリ)
- sample.dir=(サンプルインストールディレクトリ)/samples
Pet Storeデモが備えている、注文時のメール通知機能を使用する場合は、以下のメール送信に関する項目も設定してください。
- mailHost=(メールサーバホスト名)
- mailuser1=(メールユーザ名)
- mailFrom=(送信元メールアドレス)
このアドレスはメールヘッダのFromアドレスに使われます
(注1)Windowsでもパス区切り文字には "/" を用いてください。 (例: webotx.home=C:/WebOTX) (注2)UNIXの場合、さらに以下の書き換えが必要です。
- webotx.admin=${webotx.home}/bin/otxadmin
|
4.2. ビルドファイルのファイル名変更
インストールしたエディションに応じて、ビルドファイルのファイル名を変更します。(petstore_root)ディレクトリにはすでにオリジナルのbuild.xmlファイルが配置されています。ここではWebOTX用に置換しますので、元のbuild.xmlファイルをbuild.xml.bak等にリネームしておいてください。
-
Standard/Enterprise Editionの場合
(petstore_root)ディレクトリ配下のbuild_for_STD.xmlを、build.xmlに変更してください。
-
Standard-J Editionの場合
(petstore_root)ディレクトリ配下のbuild_for_STDJ.xmlを、build.xmlに変更してください。
|
4.3. データベースサーバの設定
まず「database.properties」の設定についてですが、次の項目(Info for Oracle thin)について、Oracleの環境に合わせて設定してください。
- oracle.dbName
- oracle.server
- oracle.port
- oracle.user
- oracle.passwd
続いてデータベースドライバの設定を行います。以下のディレクトリにデータベースドライバ(ojdbc14.jar)をコピーしてください。
(WebOTXインストールディレクトリ)/domains/domain1/lib/ext
アプリケーションで参照するJarファイルはここに置かれます。
|
|
4.4. メール通知の設定(任意)
PetStoreで商品を選択して購入した際に、アプリケーションが利用するJavaMail APIを経由して、SMTPプロトコルでメールを送信することができます。WebOTXより通知メールを行う場合は、以下のメールサーバとメールアドレスの設定、および受信するメッセージの種類を選択します。
この作業は必須ではありません。
まず、メールサーバとメールアドレスの設定を行います。(petstore_root)/src/build.propertiesファイルに対して、以下の値を環境に合わせて書き換えてください。
- mail.host=(メールサーバ名)
- mail.username=petstore
- mail.fromaddress=(送信元メールアドレス)
続いて受信メールの設定を行います。
メールの種類は3つあり、(1)注文を受け付けた際に発行するもの、(2)注文の内容を確認するために発行するもの、(3)注文を受理した際に発行するもの、があります。
それぞれ初期設定では「false」(メール送信機能は無効)に設定されているため、メールを発行するには以下の該当箇所(強調表示されている部分)を「true」に設定する必要があります。
対象ファイル:(petstore_root)/apps/opc/src/ejb-jar.xml
受信受付通知書 244: <env-entry>
245: <env-entry-name>param/SendApprovalMail</env-entry-name>
246: <env-entry-type>java.lang.Boolean</env-entry-type>
247: <env-entry-value>false</env-entry-value>
248: </env-entry>
注文確認通知書 52: <env-entry>
53: <env-entry-name>param/SendConfirmationMail</env-entry-name>
54: <env-entry-type>java.lang.Boolean</env-entry-type>
55: <env-entry-value>false</env-entry-value>
56: </env-entry>
商品送付完了通知書 128: <env-entry>
129: <env-entry-name>param/SendCompletedOrderMail</env-entry-name>
130: <env-entry-type>java.lang.Boolean</env-entry-type>
131: <env-entry-value>false</env-entry-value>
132: </env-entry>
|
|
5. データベースの準備 |
|
(petstore_root)/sql/oracleにあるSQL文を以下の順で実行してください。
- oracle.createUser.sql
- oracle.petstoredb.sql
- oracle.opcdb.sql
- oracle.supplierdb.sql
|
|
6. コンパイルとパッケージング |
|
コマンドプロンプトを開き、(petstore_root)ディレクトリに移動して、「asant」コマンドを実行してください。BUILD SUCCESSFULと表示されればコンパイル成功です。
コンパイルにより生成されるclassファイルは、配備記述子とともにJarファイル形式でパッケージされ、さらに複数のJarファイルがEarファイル形式にパッケージされます。
|
|
7. 配備 |
|
配備とはアプリケーションをWebOTXにインストールして利用可能な状態にすることを言います。
ここからは、WebOTXのドメインが起動した状態で作業を行います。(petstore_root)ディレクトリで、「asant deploy」コマンドを実行してください。JNDI、JMS、メールの設定およびアプリケーションの配備が行われます。
その他のコマンドは以下を参照してください。
|
|
コマンド |
操作内容 |
asant |
コンパイル |
asant setup |
設定 |
asant unsetup |
設定解除 |
asant deploy |
設定+配備 |
asant undeploy |
配備解除+設定解除 |
asant deploy-ears |
配備 |
asant undeploy-ears |
配備解除 |
正常に配備されなかった場合は、コンソールに表示されたメッセージを見るか、ログを参照してください。ログは以下のファイルに出力されます。
(WebOTXインストールディレクトリ)/domains/domain1/lib/logs/webotx_agent.log
|
|
8. 実行 |
|
posted on 2007-01-14 04:28
☜♥☞MengChuChen 阅读(1578)
评论(1) 编辑 收藏