サーバー構成で悩む

RESTful(的) on Javaな構成で組む予定のサーバー側構成に悩む。

前提

構成以前にフレームワークをどうするか(RESTfulにするかどうかも含め)悩み、Viewと手が分けれるRESTfulにして、流行り廃れに振り回されないJavaEEにするのがよいと判断。
最近はStruts + HibernateとかSeasarとかをTomcatで動かす物ばかりだったので、いきなりJavaEEに行く不安もあったものの、主に使うJPAJAX-RSあたりを見ておけばいいだろう、ということで方針決定。
お金はもちろん無いので無料のサーバーソフトを使用。

悩みドコロ

構成を考えると以下の選択肢。

「最後はPure JavaEEじゃないじゃん」というツッコミは無しで。
元々は最後のTomcat+αで大丈夫だろう と高をくくっていたものの、色々ハマったこともあってJavaEEサーバーを使ったほうが、ということも考えた次第。

  • GlassFish
    現在でJavaEEを考えるなら多分この選択。ただ、ずっとWatchしていたわけではないが、ブログなんかを見るとVer.4 あたりの迷走感が不安。

  • WildFly
    大分前だが、少しJBossを触った際には何となくクセに慣れなかった。その頃はWebSphere中心だったこともあるが。

  • TomEE+
    これにするならGlassFishWildFlyでいいんじゃね?

  • Tomcat + Weld + Jersey + DeltaSpike
    理論的には動くはず。でも(日本語)資料が殆ど無い、特にDeltaSpike。
    動くはずの所で半日ハマった時は諦めようかと思った。
    (結果pom.xmlの設定ミスだったのは泣けた)

結論

結局はこなれたTomcatを使う「Tomcat + α」。

上述したpomの設定ミスを抜けてからは、CDIJAX-RSもDeltaSpike(Transaction)もすんなり動いたし。
DeltaSpikeのBean ValidationとかSecurity Annotationとかまだ試せていないが多分動くだろう。
(と軽く考えていてpomでハマったつい数日前はすでに記憶の彼方)

GlassFishWildFlyは実運用でトラブった時に対応できる自信がない。TomEE+も同様。
必要なライブラリだけ使う方が、ライブラリにバグがあった時にも入れ替えやすいだろう、GやWやT+だとAPPサーバー自体をバージョンアップしないといけないし。
正直どれを選んでも未知数なので、運用後に対応しやすい方がいい、という考えだが、果たしてどうなることやら。