JBoss Seam を久しぶりに眺めているところですが、参考資料を見たりすると、いろいろ簡略化されているとはいえ、やっぱり面倒なところが多いように見えます。CRUDを実装するにしても、いろいろな概念を理解する必要があって、大変なのですね。まぁ、いわゆるWebアプリケーション全体がそういうものなので、仕方がないのですが、なんとかならないでしょうか。
手元にある「オープンソース徹底活用 JBoss SeamによるWebアプリケーション開発」の目次を眺めてみると、下記について理解が必要だということがわかります。
- Java
- JBoss
- Eclipse
- Seam
- HSQLDB
- JSF
- EJB3
- JPA
- Servlet
- JSP
Seamアプリを作るためには、下記手順となっています。単純な話とするために、テストについては省きました。
- データ設計(RDB)
- エンティティ開発
- アクションインタフェース開発
- 画面開発(画面遷移含む)
- アクション実装開発
RDBを用意して、テーブルを先に作ると、そこからエンティティを簡単に生成できます。エンティティの方はEJB3, JPA関係のアノテーションを理解しておけばいいのですが、これをJBoss Seamとつなげて動かすにあたって、どのように設定しておけばいいか、というあたりの確認が難しい。使っているバージョンを一致させればいいのでしょうが、Eclipse, JBoss AS, JBoss Toolsなどの一部についてちょっとバージョンが違っていると、あっというまに迷子になります。自動生成されたdatasource用のxmlやpersistence.xmlが、参考資料にあるものとちがっていて、はまりました…
アクションインタフェース開発も、どこでエンティティとアクションがつながっているのかわかりにくい部分があります。アノテーションでつなげているので、動けばいいのですが、動かないときに、どこで問題があるのかをたどるのが、苦労します。動かないときのエラーメッセージが不親切だということですね。
画面遷移もプログラムから分離ということで、設定ファイルの方に記述すればいいのですが、動作確認を簡単にする方法を知りたいところです。画面数が少ないうちはいいですが、多くなってくると、かなり厳しい。そういうところの難しさは、Seamに限りませんが…