私は新しいJavaプロジェクトを開始しています。これは、SaaSモバイルクライアントにサービスを提供するビジネスアプリケーションです。
Java EE 6を使用して1つのプロジェクトを開発しましたが、私の経験のほとんどはMicrosoftプラットフォームでの経験なので、エコシステムについてはあまり詳しくありません。
説明されているような新しいプロジェクトのJAX-RS実装の賢明な選択はどれですか?
Wikipediaのリスト で判断すると、主な候補はジャージー、Apache CXF、RESTeasy、Restletのようです。しかし、Wikipediaで引用されている JAX-RS実装の比較 は2008年のものです。
それぞれのホームページからの最初の印象は次のとおりです。
これらの選択肢のそれぞれのメリットは何でしょうか?学習曲線はどうですか?機能サポート?ツール(例:NetBeansまたはEclipseウィザード)?デバッグや展開の容易さはどうですか?これらのプロジェクトのいずれかが他のものよりも最新のものですか?それらはどのくらい安定していますか?
私は愛するようになりました Dropwizard 全体的な解決策のために
Dropwizardは、巨大なアプリケーションコンテナアプローチを採用するのではなく、開発サイクルを大幅に短縮する軽量ソリューションを提唱しています。基本的に、次のよく知られたフレームワークに接着剤を提供します。
上記の機能と機能テストへの確かなアプローチを組み合わせることで、サービスを迅速に稼働させるための完全なソリューションが得られます。
そうですか?そして私が尋ねたJAX-RSの質問...
選択したのは、参照用のJAX-RS実装であるJerseyでした。 RESTEasyの人なので、これは問題になると思いましたが、学習曲線はありませんでした。この2つはほぼ互換性があります。ただし、ジャージーのクライアントは、テストを構築するための流暢なインターフェイスを提供していたと思います。例は...
@Override
protected void setUpResources() {
addResource(new HelloWorldResource("Hello, %s!","Stranger"));
setUpAuthenticator();
}
@Test
public void simpleResourceTest() throws Exception {
Saying expectedSaying = new Saying(1,"Hello, Stranger!");
Saying actualSaying = client()
.resource("/hello-world")
.get(Saying.class);
assertEquals("GET hello-world returns a default",expectedSaying.getContent(),actualSaying.getContent());
}
この質問 をご覧ください。他の開発者の経験について説明しています。
個人的にはジャージーをお勧めできます。これは非常に使いやすく、リファレンス実装であるため、次の点で優れています。これは、次のしばらくの間、維持およびサポートされることも意味します。