サンプルアプリ on Apache+JBoss

貴方がある日上司から「Apache+JBossの検証環境を作って欲しい.それから何か適当なサンプルアプリをそこで動かして欲しい.」と仕事を依頼されたらどうするか.

ApacheJBossmod_jkを使って連携させる話と,JBoss上にサンプルアプリを載せる話は2つに分けて考えることができるわけだが,上司にはそんな区別はつかない.要するに一般的に見て妥当性のあるデモシステムを構築できるかどうかが問われているわけだ.

サンプルアプリということで,自分で簡単なJSPServletEJBを実装するという手がある.それらをまだ自分の手で実装したことの無い人の場合には,これを良い機会と捉えてそうするのがいいかもしれない.しかしそれくらいは一通りやっているよ,それよりもサンプルアプリの一般妥当性を高く確保することのほうを優先したいと思った場合はどうするか.

こういう場合に使えるのが,Java Petstoreといった,J2EEの機能を一通り利用して作られ,配布されているサンプルアプリだろう.しかしSunが配布しているJava Petstoreには一つ問題がある.

J2EEサーバとしてJ2EERI,データソースとしてCloudscapeを使うことを前提としているため,例えば「JBoss+HSQLDB」「JBoss+MySQL」といった構成にはそのままでは利用できない.

データソースの変更は比較的簡単に行えるかもしれない.しかしJava Petstoreは4つのearで構成されているが,それぞれMETA-INFフォルダにあるsun-j2ee-ri.xmlファイルの内容を全てJBossに見合ったように新しくjboss.xmlとして作り変える必要がある.これはかなり大変な作業だ.(合計で2000行くらいの量があり,もちろんDTDも両者で異なるため.)

当初はそれでも頑張ってポーティングするかと考えたが,同じような境遇の人が世の中には居るに違いないと思って,JBossフォーラムやWikiを検索してみた.すると以下のようなプロジェクトを発見することができた.

xPetstoreプロジェクト(http://xpetstore.sourceforge.net

xPetstore is a re-implementation of Sun Microsystem PetStore based on xDoclet
This demo application demonstrate how to use open source frameworks to build WODRA (Write Once, Deploy and Run Anywhere) J2EE applications.

xPetstore has been implemented using 2 differents approaches:

A pure EJB solution based on JSP, Struts, Sitemesh, EJB 2.0 and CMP 2.0
A Servlet solution based on Velocity, WebWork, Sitemesh, POJO and Hibernate.
Both solutions have been deployed and tested on the following platforms:

Operating System:
Linux Windows

Application Servers:
JBoss 3.x WebLogic 7.x Orion 2.x Tomcat 4.x

Databases:
Hypersonic SQL PostgreSQL SapDB MySQL Oracle MS SQL Server

とのことでこのプロジェクトによるSun Java Petstoreの再実装版は,こういった要望に応えるためのものであるらしい.xdocletの機能を上手く利用していると思う.JBoss3.2.6+MySQL4.1.9に全くカスタマイズ無しで載せられるかどうかはまだ試していないので不明だが,スタート地点としてはこれを選ぶのが良さそうだ.

そんなわけで,次の報告をお楽しみに.