t2はじめました

年末くらいから気になっていたt2を触っています。

T2は、Webにつなげる・つながる部分に特化した部品化指向のWebアプリケーションフレームワークです。
「the WEB Connector」というコンセプトを元に、小さく扱いやすい部品として提供します。 Webアプリケーションの入り口部分に特化して徹底的にリッチにし、
そのほかの部分を削り落とすことで部品として使いやすい・組み込みやすいフレームワークを継続的に提供するのが私達のゴールです。

http://sites.google.com/site/t2tips/Home/t2-userguide

ということで、Webアプリの骨格にあたる部分を抽出したフレームワークです。Railsなどはフルスタックで何から何までレイルに乗るわけですが、DIコンテナからO/R Mapper、View層に渡って自由に選択できる所が特徴です。サンプルとしてもS2DaoなどのSeasar2ファミリーからSpring系など様々な組み合わせが提案されており、ViewもFlexなどHTML以外の層でも使いやすいようにデザインされているようです。そんなわけで、XHTMLテンプレートエンジンPilikaも載せてみようと思います。

サンプルを試す

とりあえずはサンプルを動かすということで、ソースコードをチェックアウトし、Eclipseにインポートします。尚、全部チェックアウトすると結構な量になります。
http://t-2.googlecode.com/svn/trunk/samples/t2-samples
Seasar2に慣れている人はこちらの方が理解しやすいかもしれません。
http://t-2.googlecode.com/svn/trunk/samples/t2-employee

ソースを取得したらば、とりあえずは実行しています。bootstrapの下にSampleServerStartというクラスがあるので、これを実行すればサンプルサーバが実行され、サンプルが確認できます。

Tomcatで動かない・・・だと?

せっかくなのでTomcatで動かしましょう。プロジェクトはTomcatプロジェクトになっているので、右クリックしてTomcatプロジェクトから「コンテキスト定義を更新」を行います。後はTomcatを起動してhttp://localhost:8080/t2-samples/にアクセスします。

・・・スタイルシートが読まれてない?
ソースを見てみます。

どうも、EL式とTaglibあたりで上手く動いていない様子です。ここで結構はまりましたorz

ユーザガイドを確認してみると、

T2は以下の仕様に依存しています.
Servlet仕様(2.5以上)
JSP(JavaServer Pages)仕様(2.0以上)

というわけで、Tomcat5.5はダメ(Tomcat5.5はServlet2.4/JSP2.0)。ある程度動く辺り困りますね。

Tomcat6をダウンロードして再実行します。

むう・・・。tldの設定をweb.xmlにいれるなど色々と試すけどダメ。試しにtaglibを不正な文字に変更してみました。

すると、コンパイルエラー。で、元に戻すと認識されて正常に表示されました。

結局、問題はTomcat5から6に変更した際、JSPが再コンパイルされなかったのが原因のようです。Tomcat5でコンパイルされていた情報がキャッシュとして残っていたのです。index.htmlのタイムスタンプを変更してみると、改めてTomcat6でコンパイルされ、表示されるというオチでした。

本日はここまで。

というわけで、今後T2をTomcat5で試してみてはまった人が解決しますように。