2012-09-26 9 views
18

こんにちは、私はJAX-WSでSOAPベースのWebサービスを扱ってきました。今私はhereから学んだように、RESTはSOAPよりも利点があるため、RESTを使用したいと思います。JAX-WSとRESTfulなWebサービス用のJAX-RS

しかし、私はJAX-WSからRESTful Webサービスを作成できることも知っていました。しかし、ほとんどの人は、JAX-WSの代わりにJAX-RSを使うべきだと言っています。

私の質問は、JAX-WS RESTful WebサービスとJAX-RS(ジャージー)の違いです。 JAX-WSとJAX-RSの利点は何ですか?そしてなぜJAX-RSをRESTfulなWebサービスに使用すべきですか?

ありがとうございました。

答えて

26

TL;

JAX-WS DR

は、SOAPなどのXMLベースのウェブ・サービスのために意図されています。 JAX-RSには同じ制限がありません。

一般に、JAX-WSは、サーバーとサーバーとの間の明確な契約(WSDL)とのやりとり、および通常はサービスとクライアント側が別々のグループからのものに対応しています。非常にリソースが集中しているため、ネットワークまたはクライアントデバイスの機能が最適化されていないクライアントとサーバーとのやりとりは実現できません。

JAX-RSは、サーバーからサーバーへの操作は問題ありませんが、クライアントからサーバーへの対話に役立ちます。サービス義務はほとんどないので、クライアントのニーズに合わせてチューニングすることができます。

詳細情報

JAX-WSは、コード最初の両方(一般的に推奨されていない)を可能にし、コントラクトファーストWSDLファイル(より一般的に推奨)を使用するのに対し、JAX-RSのAPIは、コード最初のアプローチを提供します。

JAX-RS 2.0では、HttpUrlConnectionのスマートなラッパーであり、より多くのマッピング機能を備えたクライアントAPIが導入されていますが、JAX-WSもラッパーですが、リファレンス実装で扱うデータは単なるXMLです。

JAX-RSには、さまざまなブラウザやモバイルデバイス用のメッセージ(JSON構造)を簡単に作成してダイジェストできるAPIが用意されています。エンベロープの概念を導入しておらず、HTTPを使用しています。それは暗号やセキュリティを導入しません、HTTPSを使用します。

JAX-WS暗号化のためにHTTPS上で実行されますが、WS-SecurityPolicyなどを使用したセキュリティの追加が行われます。また、WSDLを使用して契約が確立され、DataPowerなどのESBを使用してアプリケーション外で検証できます。

サービスとクライアント側は別のグループからあるとき、だから何

JAX-WSを選択することは、一般的に、通常は明確に定義された契約書(のWSDL)を使用してサーバーとの相互作用にサーバーに向けたとされます。非常にリソースが集中しているため、ネットワークまたはクライアントデバイスの機能が最適化されていないクライアントとサーバーとのやりとりは実現できません。

JAX-RSは、サーバーからサーバーへの操作は問題ありませんが、クライアントからサーバーへの対話に役立ちます。クライアントとサーバーの間の唯一の契約上の義務は、メッセージヘッダーと要求ヘッダーです。サービス義務はほとんどないので、クライアントのニーズに合わせてチューニングすることができます。

しかし、RESTfulサービスAPIを使用することは、RubyとPythonのようなメタプログラミングを行うことに似ています。これは、定義されたスキーマが合意されておらず、技術的に強制されているため実行時に問題を遅らせます。私は静的なHTML/CSS/JSを使用するWebアプリケーションを構築し、RESTfulなサーバーと会話したときに通常発生する両側の制御があったならば、それをお勧めしますデータ。

関連する問題