インターネットのどこかで、JAX-WS は SOAP 実装であり、JAX-RS は Rest 実装であると読みました。これは本当ですか?JAX-WS および JAX-RS は実装または仕様ですか?
前もって感謝します。
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 実装を含めることができます。
JAX-WS と JAX-RS はどちらも Java でさまざまな方法で通信を行うためのライブラリ (API) です。
おっしゃる通り、JAX-WS は Java で SOAP 通信を行うためのライブラリであり、JAX-RS は Java で REST 通信を行うためのライブラリです。
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によって提供される実装が必要です。