3

インターネットのどこかで、JAX-WS は SOAP 実装であり、JAX-RS は Rest 実装であると読みました。これは本当ですか?JAX-WS および JAX-RS は実装または仕様ですか?

前もって感謝します。

4

3 に答える 3

4

APIを定義する仕様です。

それらが定義する API (インターフェース、クラス、および例外) には、実装が必要です。

JAX-WS の参照実装 (RI) は、Java SE に含まれています。JAX-WS RI は、Metro プロジェクト ( http://metro.java.net/ ) の一部として作成されます。Metro には、JAX-WS RI がサポートする以上の拡張機能と機能が含まれています。SOAP の世界には、Web サービス スタックがサポートできる WS-Security などのオプション機能があります。Metro はこれらをサポートしていますが、JAX-WS RI はサポートしていません。

JAX-WS は Java SE に含まれているため、サーバーなしで JAX-WS (SOAP) Web サービスを作成できます。これは、Java SE に非常に基本的な HTTP サーバーが含まれているためです。Endpontクラスを使用して、サービスを公開します。これは、何よりもテストを目的としたものです。JAX-WS が Java SE に組み込まれている本当の理由は、SOAP サービス クライアントになりやすくするためです。JAX-WS Web サービスを実際に実行するには、GlassFish、JBoss、または WebLogic などのサーバーが必要です。JAX-WS 実装を Tomcat に追加する機能はいくつかありますが、すぐに使用できる完全な実装が含まれているのは真の Java EE アプリケーション サーバーだけです。

JAX-RS の参照実装 (RI) は、Jersey ( http://jersey.java.net/ ) という名前です。JAX-RS は Java SE には含まれていません。実装をダウンロードする必要があります。ダウンロードしたら、サーバーなしで使用できますが、実際にはサーバーで使用することを目的としています。Jersey をダウンロードする理由の 1 つは、Jersey Client API を取得してクライアントを作成することです (これは、現在の JAX-RS 仕様の一部ではありません)。JAX-WS 実装と同様に、Jersey を Tomcat に追加するか、完全な Java EE アプリケーション サーバーに JAX-RS 実装を含めることができます。

于 2013-03-25T23:16:50.173 に答える
2

JAX-WS と JAX-RS はどちらも Java でさまざまな方法で通信を行うためのライブラリ (API) です。

おっしゃる通り、JAX-WS は Java で SOAP 通信を行うためのライブラリであり、JAX-RS は Java で REST 通信を行うためのライブラリです。

于 2013-03-25T18:44:47.317 に答える
1

JAX-WS は、 JSR 224で導入された Java インターフェース、クラス、およびアノテーションのセットです。

JAX-RPC 2.0 仕様は、既存の JAX-RPC 1.0 仕様を新しい機能で拡張します。これには、JAXB 2.0 ベースのデータ バインディングの直接サポート、最新の W3C および WS-I 標準 (SOAP 1.2 など) のサポートが含まれます。 、WSDL 1.2)、Java<->WSDL マッピング用の標準化されたメタデータ、容易な開発機能、Web サービスのより簡単な進化のサポート、改善されたハンドラー フレームワーク、非同期 RPC および非 HTTP トランスポートのサポート。

これは API であり、Apache Axis2などによって提供されるランタイム実装が必要です。

JAX-RS は、 JSR 311で導入された RESTful クライアント/サーバー通信用の API です。

この API により、開発者は、Web の最も優れた設計部分の特徴である Java で Web アプリケーションを迅速に構築できます。この JSR は、Java プラットフォームで REST (Representational State Transfer - セクション 3.1 の Roy Fielding の論文への参照を参照) サポートを提供するための API を開発します。軽量で RESTful なアプローチは、SOAP ベースのテクノロジーに代わる、インターネット上でサービスを展開するための一般的な代替手段として台頭しています。現在、Java プラットフォームを使用して RESTful Web サービスを構築することは、SOAP ベースのサービスを構築するよりもはるかに複雑であり、サーブレットや動的 JAX-WS API などの低レベル API を使用する必要があります。正しく実装するには、開発者側に高度な HTTP 知識が必要です。

ここでも、たとえばJerseyによって提供される実装が必要です。

于 2013-03-25T19:01:25.403 に答える