Jerseyとjax-rsの違い


94

本当にジャージって何なんだろう。

私が知っているのは、Jax-RSがREST Webサービスおよびジャージを構築するためのAPIであることです。私はいくつかの情報を得て、すべて同じことを言います:「ジャージーはJax-RSの実装です」。しかし、それはどういう意味ですか?

jax-rsがAPIである場合、残りのWebサービスを作成するためになぜジャージーが必要なのですか?ジャージーは、jax-rsを狙うためにさらにいくつかのライブラリですか?はいの場合、jax-rsは不完全なAPIですか?


13
JAX-RS 仕様の実装におけるジャージー
ブライアンローチ2013

1
Jerseyは、より簡単な方法でJAX-rsを使用するための単なるインターフェースです。JAX-RSはサーブレットを提供していませんが、Jerseyは提供しています。Jerseyは、JavaサーブレットコンテナにRestful Webサービスを実装するためのライブラリを提供します。Jerseyは、事前定義されたクラスをスキャンしてRESTfulリソースを識別するサーブレット実装を提供します。web.xml構成ファイルで、このサーブレットをWebアプリケーションに登録します。
taymedee 2015年

1
JAX-RSは仕様(基本的には何を実装/従うべきかを指示する)であり、Jerseyは実装です(つまり、これらの仕様を実装する方法を意味します)。仕様には複数の実装を含めることができます。コードでJAX-RS APIを使用できるため、JAX-RSのライブラリがあります。将来、実装(この場合はジャージー)を変更しても、コードは引き続き正常に機能します。インターフェースと実装クラスに関連付けることができます。
Vishal Akkalkote

@VishalAkkalkoteこんにちは、私はこれに頭を回そうとしています。私は職場でWebsphere 8.5を使用しており、JAX-RSを使用してRESTサービスを作成しようとしていますが、すべてのチュートリアルでJersyを使用したJAX-RSを示しています。同じEXACTコードを書くことができ、Jersy libを使用しなくても機能しますか?
superPhreshHackerKid 2018

1
@superPhreshHackerKidはい。JAX-RSの実装の1つを使用することを条件として機能するはずです。例:Apache CXF
Vishal Akkalkote

回答:


98

JAX-RSは仕様(単なる定義)であり、JerseyはJAX-RS実装です。


14
だからjax-rsは私たちが何をすべきかを言い、ジャージーはそれをしますか?それは理にかなっていますが、なぜjax-rs libsがあるのですか?
user1851366 2013

20
例:JAX-RSは、Jerseyによって実装される一連のインターフェース(標準Javaインターフェース)を提供します。そのため、実装する依存関係として一連のインターフェース(またはクラス)が必要です。
Ale Zalazar 2013

3
まあ、それは理にかなっています...しかし、jax-rsを実装するためには常に他のクラスが必要ですよね?このように、jersey ..
user1851366 '26 / 07/26

10
そのとおりです。つまり、JAX-RSはjavax.ws.rs.core.Requestインターフェースを提供し、Jerseyはそれをcom.sun.jersey.spi.container.ContainerRequestに実装します
Ale Zalazar

9
これは、JPAが仕様であり、hibernateがその実装の1つであるのと同じですか?
DesirePRG 2​​015

26

ジャージのサイトから直接

Jerseyフレームワークは、JAX-RSリファレンス実装以上のものです。Jerseyは独自のAPIを提供し、JAX-RSツールキットを拡張して、RESTfulサービスとクライアント開発をさらに簡素化する追加の機能とユーティリティを提供します。Jerseyはまた、開発者が自分のニーズに最適になるようにJerseyを拡張できるように、多数の拡張SPIを公開しています。


3
まあ、私はそれについて読みましたが、私の質問をしないでください。jax-rsがあるのになぜジャージーが必要なのですか?jaxは不完全ですか?
user1851366 2013

28
@ user1851366自動車のデザインを作成する(そして無料で提供する)慈善団体があると想像してください。世界中のメーカーは、これらのデザインが優れていることを認識し、それらのデザインに基づいて実際の車を実装しています。まあ、JAX-RSは、RESTful APIを構築する方法の計画または設計に似ており、ソフトウェアメーカーはそれを認識し、実際のRESTful APIでそれらのアイデアを実装します。トヨタ以外の多くのメーカーがデザインを使用して独自のバージョンの車を作成するのと同じように。
Edwin Dalorzo 2013

3

JAX-RSは仕様(単なる定義)であり、JerseyはJAX-RS実装です。Jerseyフレームワークは、JAX-RSリファレンス実装以上のものです。Jerseyは独自のAPIを提供し、JAX-RSツールキットを拡張して、RESTfulサービスとクライアント開発をさらに簡素化する追加の機能とユーティリティを提供します。


2

JAX-RSは仕様であり、JerseyはJAX-RS実装です。-True

これは、それをOOPS原則に関連付けると理解できます。JAX-RSはインターフェースであり、Jerseyはそのインターフェースを実装するクラスです。

これらの仕様は、Webサービスを開発および使用するための標準を作成します。

wink、RestEasyのような他のJAX-RS実装もあります。

JAX-RSは、Webサービスをどのように実装できるか、つまり入力タイプ、入力フォーマット、出力タイプ、そのフォーマット、構成などを指定する仕様です。タイプ宣言とその実装は、これらのライブラリ、ジャージー、ウインクRestEasyなど

さらに、JavaにもJPA(Java Persistence API)のような仕様があり、上記のようにJPAの実装であるHibernateがあります。


2

JAX-RSを単独で使用するとRESTを実装できません。RESTリクエストのサーブレットディスパッチャとしてJerseyを登録する必要があります web.xml

標準でポータブルなJAX-RS APIが設計されています。Jersey RESTful Webサービスフレームワークは、JAX-RS APIのサポートを提供し、JAX-RS(JSR 311およびJSR 339)リファレンス実装として機能する、JavaでRESTful Webサービスを開発するためのオープンソース、本番品質のフレームワークです。

Jerseyフレームワークは、JAX-RSリファレンス実装以上のものです。Jerseyは、JAX-RSツールキットを拡張して独自のAPIを提供し、RESTfulサービスとクライアント開発をさらに簡素化するための追加の機能とユーティリティを備えています。ソース

多くのための

RestletとJerseyは、JavaエコシステムでRESTful Webサービスの開発に使用されるJAX-RSの最も人気のある実装の2つですが、Apache Wink、Apache CXF、JBoss RESTEasyなどの他の実装もいくつかあります。 ソース

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.