JBoss Seam BookingサンプルをPostgreSQLで試す。
JBoss Seamのサンプルアプリケーション Bookingは付属のHSQLDBと言うDatabaseを使用していますが、これを以前セットアップしたPostgreSQL 8.1に換えてみました。
環境は下記の通りです。
DB:VMWare上のFreeBSD 6.0へportsでインストールしたPostgreSQL 8.1
Client:Eclipse 3.1.1
JBoss-IDE 1.5RC1
TestNG for Eclipse 4.2.0
- CVSから最新のjboss-seamを持ってくる。
- build Pathにantlr-2.7.6rc1.jarを加え、antlr-2.7.5H3.jarを削除する。
- examples/booking/resources/booking-ds.xmlを編集する。
<datasources> <local-tx-datasource> <jndi-name>bookingDatasource</jndi-name> <connection-url>jdbc:postgresql://192.168.xx.xx:5432/ejbtest</connection-url> <driver-class>org.postgresql.Driver</driver-class> <user-name>tester1</user-name> <password>himitsu</password> </local-tx-datasource> </datasources>
- examples/booking/resources/META-INF/jboss-beans.xmlを編集する。
- driverClassを上記のようにorg.postgresql.Driverへ。
- connectionURLを上記のようにjdbc:postgresql://192.168.xx.xx:5432/ejbtestへ。
- userNameを上記のようにtester1へ。
himitsu を追加する。
- examples/booking/resources/META-INF/persistence.xmlを編集する。
- build.propertiesのjboss.homeをJBOSS_HOMEへ変更する。
- build.xmlのproperty name="deploy.dir"のvalueをvalue="${jboss.home}/server/postgres/deploy"へ変更する。
- examples/booking/src/User.javaを編集する。PostgreSQLではuserは予約語なのでuserと言うテーブルは作成出来ない。
- クラスに@Table(name="Users")を追加する。
- buildする。
以上でDeployまで終わっているので、JBossを-c postgresで起動します。JBoss自身が使用するテーブルの他にBookingアプリケーションのテーブルbooking, hotel,usersが作成されていますが、テーブルは空なので、examples/booking/resources/import.sqlの各行を実行します。最後にhttp://localhost:8080/seam-bookingへアクセスしてみます。
上記でPostgreSQLで動作するのですが、SeamにはTestNGを使って簡単にテストを行うことが出来ます。せっかくですのでTestNGを使ってのテストもPostgreSQLを使って行えるようにします。TestNGで行うテストはJBoss本体を使用しないで、Embeddable EJB3を使っているようです。