Java Web サービスに必要ですかAXIS
? CXF
JDK (1.6) 経由ですべて実行できますか?
6 に答える
以下は、すべてから真実で個人的な話に基づいています。
したがって、Java WebアプリケーションでWebサービスを利用したいが、10MiBのJARを無駄のない1.3 MiB .warファイルに追加したくない。さらに、XMLの解析に長けている(XPathクエリを手動でコーディングできる。およびXSLTファイル)、HTTPを完全に理解しており、インターフェイスしているクライアントには優れたドキュメントがあります。エンドポイントとメソッドを確認するWSDLをダウンロードし、必要な機能にマップするJavaクラスの作成を開始します。あなたはすでに気分がいいです。
彼らはSOAPリクエストの送信方法を読み始め、これは少し冗長に見えると思いますが、それはすべて単なる文字列なので、Javaリクエストオブジェクトを取得してSOAPリクエストに変換するユーティリティの構築を開始します。クリアSOAPリクエストをサーバーに送信しましたが、拒否されました(署名がありません)。
そこで、プロジェクトに暗号化JARを追加し始め、XMLドキュメントの一部の署名を計算し、それとドキュメントの両方をリクエストに含める方法を検討し始めます。これにはしばらく時間がかかりますが、十分なハッキングを行うと、soapサービスに送信できるメッセージが表示され、SOAP応答を処理できるようになります。今、あなたは素晴らしい気分です...
クライアントの管理者がセキュリティ要件を変更し、新しい公開鍵を発行し、いくつかのカスタムタイプでsoapインターフェイスを更新するまで、同様のサービスを実行している次のクライアント(ただし、Windows Server上)は、次のように実装することを望んでいます。良い。
この時点で、私はこれを純粋なJavaの方法で実装することをあきらめ、標準ライブラリの使用を開始しました。それらは、暗号化、マーシャリング、標準からの逸脱などを処理し、問題のドメインに近いものに集中できるようにします。私がこのレッスンを学ぶのにかかった失われた月をあなた自身が救うことができることを願っています。
Java Web サービスに AXIS または CXF は必要ですか?
いいえ。Axis2は Web サービスを操作するための最も一般的なフレームワークですが、Web サービスを実行する唯一の方法ではありません。
JDK (1.6) 経由ですべて実行できますか?
はい、しかしそれははるかに難しいです。他のアプリで使用されているフレームワークを使用したり、開発チームが提供するバグ修正から多大な恩恵を受けることができます。すべてを手作業で行うことは、車輪を再発明するようなものです。
下で何が起こっているかを完全に制御したい場合は、おそらくJAX-WSを使用できます。
または、アプリケーションが非常に単純な場合は、ソケットを直接使用します。
しかし、繰り返しますが、Axis2は WS を実行する標準的な方法です (ただし、唯一の方法ではありません)。
Axis の代わりに、Spring WebServicesフレームワークを使用して、Tomcat などの J2EE コンテナー内で Web サービス アプリケーションを実行できます。使用とセットアップが非常に簡単で、後で Web サービスを別の Web アプリケーションに統合したい場合は、非常に簡単です (私は 2 回別々に行ったことがあります)。
Web サーバーが提供する http ストリームを好きなように使用できますが、フレームワークといくつかの jar (動作することが証明されています) を使用すると、長い目で見れば多くの頭痛と多くの時間を節約できます。
通常、Web サービスにはプログラミング フレームワークを使用します。
AXIS、CXF、または Sun からダウンロードした Java EE (GlassFish) のようなもの。