Guiceサンプルも埋め込んでみた

ついでにソート順位も合わせてみた。

今までは設定なしだったのでどのように表示されるかは運しだいだった。

実はこのGuiceサンプルがすんなり動かなかった。これはサンプルそのものが悪いわけではなくT2FrameworkがServiceLoaderを使うという仕組みのため。

ServiceLoaderはサービスの実装者が埋め込む、つまりライブラリの提供者が用意する場合何も問題ない。でも、Webアプリ自体がやろうとする場合面倒なことになる。具体的にはNetBeansのWebプロジェクトファイルはいわゆるServiceLoaderをサポートしていない。

機知の設定ファイルであるpersistence.xml等はconfディレクトリから適切にコピーしてくれたり、ライブラリ提供者が作るライブラリ用jarならばなにも問題は無い。

だがwarファイルの場合通常のjarとは使用するMETA-INFの場所が異なる。ここがはまる。



あとライブラリでgeronimo-specのやつらは2つともいらないと思う。特にJPAのほうは2つあるのでgeronimoの方は消したほうが良い。