第2回 JavaPetStoreで体験するJava EE 5のテクノロジー
Java BluePrintsとは?
Java BluePrintsは、直訳すれば「Javaの設計図」となる。そして、Java BluePrintsプログラムはその文字通りJava EE 5のテクノロジーを利用することで、このようなアプリケーションが構築することができるという見本となるものだ
Java EE 5 SDKとSun Java System Application Server 9.1 マルチリンガル版には、Java BluePrints Solutions Catalog、そしてJava BluePrints Petstore 2.0という二つのプロジェクトを含んでいる。それらに含まれるすべてのコードとアプリケーションは、統合開発環境(IDE)であるNetBeansでそのまま使用できるようになっている
Java EEのサンプルアプリケーションの代表格と言えば、BlueprintsのJava PetStore 2.0になるだろう。Java PetStore 2.0は、サンプルアプリケーションとはいえ、本格的な実装の参考になるレベルのWebアプリケーションだ。BluePrintsプロジェクトはJava EE 5 SDKがインストールされたディレクトリ、 <javaee.home> の下の blueprints/bpcatalog/ またはblueprints/petstore/ にある
Java PetStore 2.0リファレンスアプリケーション(blueprints/petstore/)は、現在広く使われている、Ajax、RSS、クライアントサイド・サーバーサイドのマッシュアップなどをJavaServer FacesやJava Persistence API などのJava EE 5テクノロジーを使用して構築した一つの例だ
GlassFish Update Center の起動
Windowsのスタート → すべてのプログラム → Sun Microsystems → Application Server PE 9 →「Update Center の起動」をクリックして、以下のプログラムを追加ダウンロードする
図1: GlassFish Update Center
GlassFish Update CenterのAvailable Softwareの、Web Technologiesの一部であるAjaxフレームワークのjMakiコンポーネント、Java EE Blueprints、Java EE 5 Sampleを選択し、画面右にある「Install」をクリックしダウンロードを開始する。ダウンロード後のファイルは、 <javaee.home> に配置される
GlassFish Update Centerによって、下記のファイルがインストールされるが、バグがあり修正を加える必要がある
D:\dev\Sun\AppServer\samples\bp-project\build.propertiesこのファイルの <javaee.home> の行を下記のように修正する
#javaee.home=D:\dev\Sun\AppServer
javaee.home=D:/dev/Sun/AppServer
Apache Antのセットアップ
Java BluePrintsのプログラムを動作させるには、Apache Antによるソースコードのビルドとアプリケーションのデプロイを行う必要がある
コマンドプロンプトから実行するには、Apache Antのクラスパスを設定しなければならない。Java EE 5 SDKに同梱されているApache Ant 1.6は、「 <javaee.home> \lib\ant」にある。しかしながら、Apache Antはその他のプロジェクトなどでも利用できる大変便利なツールだ。ここでは、新規にApache Antダウンロードしてくる方法をとることにする
Apache Ant 1.7.0は、下記のWebサイトからダウンロードしていただきたい
Apache Ant - Binary Distributionsダウンロード後、任意のディレクトリ(例:D:\dev)でZIPファイル解凍する。この例の場合、システムの環境変数に「ANT_HOME」(例:D:\dev\apache-ant-1.7.0)を設定し、PATHに追加「例:%ANT_HOME%\bin;」する
また、Java PetStore 2.0はデータベースを利用するため、Windowsのスタート>すべてのプログラム> Sun Microsystems>Application Server PE 9>「Java DB を起動」をクリックしJava DBを起動しておく必要がある。ちなみに、デフォルトで利用されるデータベースはApache Derbyである
次に、コマンドプロンプトを起動し、 <javaee.home> blueprints/petstore/ ディレクトリに移動し、以下のコマンドを実行する
<javaee.home>\blueprints\petstore>ant setup
<javaee.home>\blueprints\petstore>ant run
これにより、アプリケーションがビルドされ、アプリケーションサーバーに自動的にデプロイされる。また、デプロイが完了すると、例:http://localhost:8080/petstore にアクセスすることで、Java PetStore 2.0のトップページが表示される。なお、ブラウザーがFirefoxの場合Ajaxの機能がうまく動作しない点に注意して頂きたい
図2: Java PetStore 2.0のトップページ
左方向には、ペットの種類がカテゴリー別に表示され、中央右にはタグ付けも行われている。自分のペットを「Seller」から販売することも可能になっている。住所はGoogleサジェスト同様の自動補完機能付きというこだわりようだ。残念ながら、日本語で登録すると文字化けしてしまう
そして注目すべき機能は、Ajaxを利用してGoogleマップとペットの飼い主の位置をマッシュアップして表示することができる機能だろう

図3:Googleマップを用いてペットの飼い主位置をマッシュアップで表現している
このようにJava PetStore 2.0は、Ajaxを用いたWebアプリケーションで、単なるサンプルアプリケーションとは言い難いような高い完成度を誇っていることがわかる。Java EE 5のテクノロジーだけでなく、Ajaxを組み合わせることでリッチなWebアプリケーションを作成することが可能だ
Java BluePrintsプロジェクトを、アプリケーションサーバーからアンインストールする場合は、Sun Java System Application Server及び、JavaDBデータベースが起動していることを確認する。起動していない場合は、Windowsのスタート>すべてのプログラム> Sun Microsystems>Application Server PE 9>「Java DB を起動」をクリックしJava DBを起動する。また同じく、Windowsのスタート>すべてのプログラム> Sun Microsystems> Application Server PE 9>「デフォルトサーバーを起動」をクリックし、アプリケーションサーバーを起動する
下記のコマンドをコマンドプロンプトから入力することでも、代用できる
- Java DBの起動:asadmin start-database
- アプリケーションサーバーの起動:asadmin start-domain
その後、 <javaee.home> /blueprints/petstore/ に移動し、以下のコマンドをコマンドプロンプトから実行する。これによってすべてのアプリケーションが、アプリケーションサーバーからアンインストールされる
ant undeployデータベースに作成されたテーブルの情報を消去するには、 <javaee.home> /blueprints/petstore に移動し、以下のコマンドをコマンドプロンプトから実行する
ant unsetup 以上で、アプリケーションサーバーからのアンインストールが完了する