MTOM サービス - 技術情報


始めに
ソース・コードの場所
コーディング・メモのレビュー


始めに

このサンプルでは、JAX-WS の Web サービスを使用してバイナリー・ファイルを伝送する SOAP Message Transmission Optimization Mechanism (MTOM) の使用法を示します。 

MTOM サービス・サンプルでは、ファイルのバイナリー・コンテンツをクライアントに戻す Web サービスを実装します。サンプルには、サーブレット・クライアント、org.apache.axis2.jaxws.sample.servlet.SampleServlet と、MTOM サービスの Thin Client アプリケーション、org.apache.axis2.jaxws.sample.mtom.SampleMTOMTests が組み込まれています。サービス・クライアント・サーブレットと Thin Client アプリケーションは、共通コードを使用して SampleMTOMTests.java ソース・ファイル内のディスパッチおよびプロキシー・ベースのクライアントを使用するサービスを処理します。

ソース・コードの場所

注釈付き MTOM サービス・サンプルのクライアント・サーブレットおよび Thin Client アプリケーションの Java コードは、profile_root/samples/src/JaxWSServicesSamples/SampleMTOMClient/src ディレクトリーにあります。

MTOM サービス・アプリケーションの Java コードは、 profile_root/samples/src/JaxWSServicesSamples/SampleMTOMService/src ディレクトリーにあります。

z/OS オペレーティング・システムの場合: サンプル・アプリケーションは z/OS オペレーティング・システムではビルドされないため、これらの JAX-WS サンプルのソース・コード・ツリーは z/OS オペレーティング・システムでは提供されていません。

コーディング・メモのレビュー

MTOM サービス・サンプルは、Rational Application Developer ツールを使用して、サービスを定義する 2 つの Web サービス記述言語 (WSDL) ファイルから生成されています。 提供されるサービス・エンドポイントの 1 つは SOAP 1.1 を使用し、もう 1 つは SOAP 1.2 を使用します。サーバーは、コンテンツ・タイプに基づいて着信 MTOM 最適化メッセージを自動的に識別し、それに従ってメッセージをデシリアライズします。したがって、MTOM サービス・サンプルにはサービスで MTOM を処理する明示的なコードはありません。

しかし、クライアント・サイドでは、サービス・トランザクションの前に MTOM が使用可能になっている必要があります。MTOM サービスの Thin Client アプリケーション、org.apache.axis2.jaxws.sample.mtom.SampleMTOMTests.java 内の testMtomWithDispatch および testMtomWithProxy の両メソッドでは、 バインディングに setMTOMEnabled メソッドを呼び出します。このメソッドが呼び出されると、発信メッセージがシリアライズされ、MTOM 最適化メッセージとして送信されます。setMTOMEnabled メソッドでバインディングが設定されない場合、バイナリー・コンテンツ・ノードのバイナリー・データはすべて Base64 エンコード・ストリングとしてシリアライズされます。

クライアント・サーブレット、org.apache.axis2.jaxws.sample.servlet.SampleServlet.java には、サービス固有のコードはなく、ファイル SampleMTOMTests.java に指定されているメソッドを呼び出します。

このサンプルで提供されるクライアントは、ディスパッチおよびプロキシーの両プログラミング・モデルを使用して MTOM サービスを起動します。このクライアントにより、ディスパッチとプロキシーの両メソッドにアクセスする方法を示します。

JAX-WS の Web サービス用に MTOM を使用可能にする方法の詳細については、 WebSphere Application Server Information Center Library を参照してください。