[T2 framework] mobylet+T2(+Guice)@Google App Engine for Java

T2Frameworkmobyletを組み合わせてGAE/Jで構築を試みて下さっている方からコメントを頂いた関係で
今日は合間を見つけながらT2+mobyletで格闘してみました。


T2の存在は知っていたのですが
使ったことが無かったので「どんなフレームワークなんだろうなぁ?」と思ったままの状態で
今日はじめて使って、個人的にかなりヒットしました。


というのも、T2の持つ一番小さくて大きな機能だと思う
URLとPageクラスのマッピングという処理のようなもの(REST風解決を図れるもの)を
mobyletに組み込もうかどうしようか、迷っていたところだったので
(この時点ではT2のこの機能を知らない訳では無かったけど、もっと大きなフレームワークだと勘違いしていた)
渡りに船のようなフレームワークに感じました。


GAE/Jを使っている関係上
T2(Lucy)を使った場合にjavax.xml.stream.XMLInputFactoryクラスが制限クラスになっていて
GAE/Jで動かないという問題にはまってしまいましたが(回避策あるのかな?)
Lucyの代わりにGuiceを使うことでさくっと解決しました。


(参考)
http://shin1o.blogspot.com/2009/04/gaejavat2-framework.html


まずは今回実装したサンプルサイト(画像リサイズだけです)
http://mobylet-example-t2gae.appspot.com/resize/


このexampleプロジェクトのリポジトリ
https://www.seasar.org/svn/sandbox/mobylet/trunk/mobylet-example-t2gae/


多分、ポイントはweb.xmlの書き方で
mobyletとT2でResponseの出力部分で少し競合している箇所があるようなので
Forward.toを使う場合にMobyletFilterのdispatch設定が必要になるようです。

                  • -


mobyletFilter
org.mobylet.core.http.MobyletFilter

mobylet.config.dir
WEB-INF/resources/



Guice Servlet Filter
com.google.inject.servlet.GuiceFilter



t2
org.t2framework.t2.filter.T2Filter

t2.rootpackage
org.mobylet.t2gae.page


t2.container.adapter
org.t2framework.t2.adapter.GuiceAdapter


t2.exclude-resources
css, js



mobyletFilter
/*
REQUEST
FORWARD



Guice Servlet Filter
/*



t2
/*

                  • -


あとはほぼ通常の設定と変わらない感じでいけるみたいです。



個人的にはSAStrutsのような大き目のフレームワークも好きですが(ちょっと大きめのサイト作る時とか)
GAE/Jでスモールスタートで作ってみよう!って時には
T2のような軽い感じのフレームワークは非常に良いですね。


今度は実際のサービスにも使ってみようと思います。