9.3. MTOM の有効化


デフォルトでは、Apache CXF ランタイムは MTOM サポートを有効にしません。通常の SOAP メッセージの一部として、または最適化されていない添付ファイルとしてすべてのバイナリーデータを送信します。MTOM サポートは、プログラムを用いて、または設定を使用してアクティベートできます。

9.3.1. JAX-WS API の使用

概要

サービスプロバイダーとコンシューマーの両方で、MTOM の最適化を有効にする必要があります。JAX-WS API は、各タイプのエンドポイントに異なるメカニズムを提供します。

Service provider

JAX-WS API を使用してサービスプロバイダーを公開した場合は、以下のようにランタイムの MTOM サポートを有効にします。

  1. 公開されたサービスの Endpoint オブジェクトにアクセスします。

    Endpoint オブジェクトにアクセスするための最も簡単な方法として、エンドポイントをパブリッシュするときが挙げられます。詳細は、31章サービスの公開 を参照してください。

  2. 例9.4「エンドポイントからの SOAP バインディングの取得」 で示すように、getBinding() メソッドを使用して Endpoint から SOAP バインディングを取得します。

    例9.4 エンドポイントからの SOAP バインディングの取得

    Copy to Clipboard Toggle word wrap
    // Endpoint ep is declared previously
    SOAPBinding binding = (SOAPBinding)ep.getBinding();

    MTOM プロパティーにアクセスするには、返されたバインディングオブジェクトを SOAPBinding オブジェクトにキャストする必要があります。

  3. 例9.5「サービスプロバイダーの MTOM 有効プロパティーの設定」 に示されるように、バインディングの setMTOMEnabled() メソッドを使用して、バインディングの MTOM enabled プロパティーを true に設定します。

    例9.5 サービスプロバイダーの MTOM 有効プロパティーの設定

    Copy to Clipboard Toggle word wrap
    binding.setMTOMEnabled(true);

コンシューマー

MTOM で JAX-WS コンシューマーを有効にするには、以下を行う必要があります。

  1. コンシューマーのプロキシーを BindingProvider オブジェクトにキャストします。

    コンシューマープロキシーの取得は、25章WSDL コントラクトなしでコンシューマーの開発 または 28章WSDL コントラクトからのコンシューマーの開発 を参照してください。

  2. 例9.6「BindingProvider からの SOAP バインディングの取得」 で示すように、getBinding() メソッドを使用して BindingProvider から SOAP バインディングを取得します。

    例9.6 BindingProvider からの SOAP バインディングの取得

    Copy to Clipboard Toggle word wrap
    // BindingProvider bp declared previously
    SOAPBinding binding = (SOAPBinding)bp.getBinding();
  3. 例9.7「コンシューマーの MTOM 有効プロパティーの設定」 に示されるように、バインディングの setMTOMEnabled() メソッドを使用して、バインディングの MTOM enabled プロパティーを true に設定します。

    例9.7 コンシューマーの MTOM 有効プロパティーの設定

    Copy to Clipboard Toggle word wrap
    binding.setMTOMEnabled(true);

9.3.2. 設定の使用

概要

コンテナーへのデプロイ時など、XML を使用してサービスを公開する場合、エンドポイントの MTOM サポートをエンドポイントの設定ファイルで有効にすることができます。エンドポイントの設定に関する詳細は、パートIV「Web サービスエンドポイントの設定」 を参照してください。

手順

MTOM プロパティーは、エンドポイントの jaxws:endpoint 要素内に設定されます。MTOM を有効にするには、以下を実行します。

  1. jaxws:property 子要素をエンドポイントの jaxws:endpoint 要素に追加します。
  2. entry 子要素を jaxws:property 要素に追加します。
  3. entry 要素の key 属性を mtom-enabled に設定します。
  4. entry 要素の value 属性を true に設定します。

例9.8「MTOM の有効化設定」 は、MTOM が有効なエンドポイントを示しています。

例9.8 MTOM の有効化設定

Copy to Clipboard Toggle word wrap
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jaxws="http://cxf.apache.org/jaxws"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
                           http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

  <jaxws:endpoint id="xRayStorage"
                  implementor="demo.spring.xRayStorImpl"
                  address="http://localhost/xRayStorage">
    <jaxws:properties>
      <entry key="mtom-enabled" value="true"/>
    </jaxws:properties>
  </jaxws:endpoint>
</beans>
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.