NetBeans6.0 beta2のRESTful WebService作成機能を試す

以前ちょっとだけ触ったJerseyについて調べていたところ、NetBeans6.0にはこのjerseyを使ったRESTful WebServiceプラグインが用意されてることを知りました。

外部API関係はおいといて、とりあえずJPAのEntityを自動作成して、そのCRUD処理をRESTで公開するところまでのサンプルを作ってみました。JPAのEntityをテーブルから自動作成した後であれば、そのEntityに紐づくJAX-RSに基づいたクラスを自動作成してくれます。テスト用のJavaScriptクライアントも自動作成してくれるので、XMLJSONで値が返ってくるのを確認することもできました。たしかに、これならDBリソースにアクセスできる簡単なAPIを作成することが可能っぽいです。
・・・が、やはり気になるのがJAX-RS自体の仕様としての解りづらさでしょうか。登録されるURL、対応するHTTPのメソッド、ContentType、URLで指定されるIDパラメータ・・・等々、悉くアノテーションで定義する必要があります。更に、これらのJAX-RSで定義したクラスをServletから公開する為の仕様がJAX-RSでは定義されてないみたいで、Jersey固有のServletが使われてありました。更に更に、このServletに登録する為に、build処理を行ってJAX-RS登録クラスを決定するクラスを生成する必要があるみたい・・・
Railsのコントローラなら、これらを全て規約で定義しています。しかもRESTだけの為ではなくRailsのコントローラ機能の標準として実装しているから、非常に解りやすいです。コントローラ名がURLと紐付き、特定の名前のメソッドがHTTPメソッドと紐付き、ContentTypeは戻り値のオブジェクトのxmljsonへの変換メソッドを呼んでやればいいだけ。scaffold_resourceで自動作成することもできるし、手書きで書いても直感的に作ることができます。NetBeansJAX-RSの組み合わせで、scaffold_resource相当機能には対抗することができそうですが、実際手書きでAPIを作るとなると、途端に生産性はガタ落ちしてしまいそうです・・・
もうちょっと、JAX-RSの仕様自体をより簡単に扱える方向に吟味して欲しいところでしょうか。何でもアノテーションありきで定義するのではなく、できるだけクラス名やメソッド名を有効利用したデフォルト値を定義すれば、もっと使いやすくなる気がします。