web-dev-qa-db-ja.com

Java REST実装:Jersey vs CXF

この2つのライブラリの利点/欠点は何だと思いますか?これら2つのうち、実稼働環境に最適なものはどれですか?ところで、XMLの代わりにJSONを使用します。

また、コミュニティで最もサポートされているライブラリを知りたいです。チュートリアル、ドキュメント。

75
dexter

両方を使用しましたが、目的は異なります。 CXFは、WSDLを解析し、Java対話するPOJOを作成するのに非常に優れていたため、CXFはクライアント側のWSDLサービスに非常に適しています。現在、サーバー側の実装にJerseyを使用していますJerseyを使用してRESTfulサービスを簡単に起動および実行できることに感心しました。

Jerseyは主にRESTfulサービスに専念しており、CXFはほとんど(すべて?)SOAPを扱うため、SOAPまたはRESTを使用して、最適なフレームワークを決定するかどうかにかかっていると思います個人的には、SOAPよりもRESTキャンプにいますが、私のニーズは異なります。ベンダー/顧客/会社がサービスを作成する状況にあるべきですか?何らかの契約が必要です、私はまだREST(およびRESTが契約ベースのサービスに相当する、 [〜#〜] wadl [〜#〜 ] )、ただし、おそらくSOAPサービスを実装する必要があります。この場合、最初にCXFを、次にすべてを確認します。

個人的には、Jerseyは RESTEasy を除外しませんが、JAX-RSフレームワークにはかなり適しています。私は両方とも気に入っていますが、RESTEasyのドキュメントの方が優れています。

CXFの場合、ドキュメントは問題ありませんが、SSLおよびHTTPプロキシの処理方法に矛盾が生じましたが、最終的にはうまくいきました。 CXFはこれらの追加機能に関して追加設定なしで提供します。RESTEasyはRESTfulフレームワークに同等の機能を提供します。

47
Nick Klauer

私はジャージーのみを使用しました(非常に満足しています)ので、本当の比較をすることはできません。あなたが考慮したいと思うかもしれないもの:

  • CXFは、SOAPスタックサポートでパッケージ化されているため、RESTfulシステムを構築するときに決して使用しない多くのSOAP関連の重みを持ち込んでいます。私が知っているように、しかし)
  • Jerseyには、非常に役立つ多くの非標準のJAX-RSが追加されています。非常にうまく設計されたクライアント側のコアフレームワークもあります。
  • [警告:恥知らずなプラグイン(申し訳ありません)]:私は、クライアント側でRESTこの(または次の)週に発表する予定です-クライアント側を大事にしたいなら、試してみてください。

HTH、

ヤン

4
Jan Algermissen

RESTlet を検討しましたか? RESTful Webサービスを迅速に構築するための強力なパッケージです。 RESTletの背後にいる人々は、現在早期アクセス中のRESTlet In Actionブックも執筆しています。既に利用可能な章は、RESTを説明し、REST api。

3
dafmetal

Jerseyで開発されたソリューションを[〜#〜] cxfで実行するように変換する詳細について懸念がある場合[〜#〜]Glen MazzaはGitHubでApache CXFに移植されたJerseyサンプルのコレクションを投稿しました 。 READMEファイルには、必要な変更に関する各サンプルのメモがあります。

2

JAX-WSにはApache CXFを、JAX-RSにはJerseyを使用したため、CXFとRESTについてコメントすることはできません。 Jerseyを使用してRESTの例を設定するのは簡単でした。ドキュメントは適切でした。

実装ガイドラインの良い本は、RESTful Web Services Cookbookです。

1
Blair