2009-10-01 21 views

答えて

3

Java WebサービスにはAXISまたはCXFが必要ですか?

Axis2がWebサービスと連携するための最も人気のあるフレームワークは、それらを行うための唯一の方法ではないです。

すべてはJDK(1.6)で行うことができますか?

はい、しかしそれはずっと難しいです。他のアプリで使用されているフレームワークを使用したり、開発チームが提供するバグを修正したりすることにより、大きなメリットがあります。手ですべてを行うことは、車輪を再発明するようなものです。

あなたは下に何が起こっているかを完全に制御したい場合は、おそらくあなたが一緒に行くことができます:JAX-WS

またはアプリケーションが直接ソケットに、非常に単純な場合は。

しかし、再び、Axis2は、WS(だけでなく1)を行うための標準的な方法です

+1

ちょうど推測ですが、彼はおそらくそれより少し詳細を望んでいます。 –

+0

@ウィリアム:詳細を追加するために編集されました。私は、他に何が追加されても、答えは同じであると思っています。 Axisは必要ですか?いいえ、JDKで実行できますか?はい、それははるかに難しいです。 :) – OscarRyz

1

あなたがシューッという音としてあなたがWebサーバにより提供されるHTTPストリームを使用できますが、フレームワークと、いくつかのjarファイルを使用して(されています働くことが証明されていれば、長期的に頭痛やたくさんの時間を節約できます)。

0

通常、Webサービス用のプログラミングフレームワークを使用したいと思うでしょう。

AXIS、CXF、Java EE(GlassFish)のようなものは、Sunからダウンロードしてください。

2

Axisの代わりに、Spring WebServicesフレームワークを使用して、TomcatなどのJ2EEコンテナ内でwebservicesアプリケーションを実行できます。私は非常に使いやすく、セットアップが簡単で、Webサービスを後で別のWebアプリケーションに統合したいのであれば、とても簡単です(私は自分で2回別々に行っています)。

+0

Axis1?悪い。軸2?さらに悪い。 +1 Spring Webサービスの場合+1。 – duffymo

3

次がtrueと個人的な話にすべてに基づいています。だから、あなたはJava WebアプリケーションでWebサービスを利用したい、とあなたにJARファイルの10MiBを追加したくない

に(あなたはコードXPathクエリとXSLTファイルを手渡すことができます)、あなたは完全にHTTPを理解しており、あなたが接続しているクライアントは素晴らしい文書を持っています。エンドポイントとメソッドでWSDLの外観をダウンロードし、必要な機能にマップするJavaクラスの作成を開始します。あなたはすでに偉大な気分です。

SOAPリクエストの送信方法を読んでいますが、これはちょっと冗長に見えますが、ちょっと文字列なので、Javaリクエストオブジェクトを取得して変換するユーティリティを構築し始めますSOAP要求に変換します。クリアSOAPリクエストをサーバーに送信しますが、拒否されます(missing a signature)。

これで、プロジェクトに暗号化JARを追加し始めました。そして、XML文書の一部の署名を計算し、要求の中に文書と文書の両方を含める方法を調べ始めます。これはしばらくかかりますが、十分なハッキングがあれば、あなたは石鹸サービスに送ることができるメッセージを受け取り、SOAP responseを扱っています。あなたのクライアントの管理者がセキュリティ要件を変更し、新しい公開鍵を発行し、いくつかのカスタムタイプでSOAPインターフェースを更新し、同様のサービスを実行している次のクライアント(しかし、 Windows Server上で)あなたもそれらを実装することを望みます。

この時点で私はこれを純粋なJavaの方法で実装しようとしたことを断念し、標準ライブラリを使用し始めました。彼らは、暗号化、マーシャリング、標準偏差のようなものを扱い、彼らはあなたの問題のドメインに近いものに集中することができます。私はあなたがこのレッスンを学ぶのに苦労した月を自分で救うことができれば幸いです。

3

SOAPやXMLベースであるために使用される2013年

WebサービスにおけるWebサービスの景観に更新。 WebサービスはJAX-WSに標準化されています。より人気のあるフレームワークの一部は(いた)されています

  • 軸1.xの
  • 軸2
  • のApache CXF - CXFはまた、他のプロトコルを含んでいます。これははるかに広いフレームワークです
  • JAX-WSリファレンス実装を含むメトロWebサービス。
  • Java 6およびJava 7には、デフォルトでJAX-WS RIが組み込まれています。これは、クライアントおよびサービスのスタブ/スケルトンを生成する以外は、フレームワークがもはや必要でないことを意味します。

他のベンダー固有の実装例があります。 IBM WebsphereのWS実装とWeblogicのWS実装

しかし、Webサービスを作成するには、MetroとJAX-WS RIをお勧めします。

多くのWS- *標準があります。すべてのWS実装の一部ではないWS-Security。

ウェブサービスはしばらくの間行われていたため、建築スタイル、プロトコル、エンコーディングの両方の面で他の選択肢がありました。

例えば、XMLは事実上のエンコードであった。 JSONがより普及しました。ジャクソン、JSONパーサー、Google GSONを検討する価値があります。 JSONに有利な主な主張は、使いやすく、軽量で、開発者に優しいということです。

JSONとともにRESTが来ました。 RESTはアーキテクチャスタイルです。 RESTを使用すると、ネットワーク上で簡単に使用できるリモートサービスという意味で、「Webサービス」を実装できます。 RESTはJAX-RSのようなJavaファミリーの標準でも標準化されています。一般的なJAX-RS実装には、CXF、Jersey、およびRESTLetがあります。

最後に、バイナリエンコーディングを使用するブロックに新しい子供がいます。それらはGoogleプロトコルバッファとApache Thriftです。彼らの主な目標は、パフォーマンスだけでなく、他の言語(Java、C#、Erland、Perl ...)に対する幅広いサポートです。

今日ウェブサービスを開発する場合、質問は次のようにする必要があります。 - パフォーマンスは気になりますか? - さまざまな言語からサービスにアクセスしたいですか? - モバイルフレンドリーにしたいですか?

これらは、あなたの選択を導くのに役立ちます。また、私は自分の依存関係を最小限に保つことを好みます。これは、JREやJDKにネイティブなものを取ることを意味します。 JAX-WSまたはJAX-RSリファレンス実装。

+0

ありがとう、非常に有益です。 –

+0

2016年にこの回答を更新できますか?何が変わったのか、新しい基準は何ですか?あなたは同じことについてもっと詳しく説明するブログ記事を持っていますか? – gonephishing

+0

私は、JSON、REST、およびJerseyは使い道があると言います。軽量で使いやすいです。 –

関連する問題