検索

290.4. マルチパートメッセージ

download PDF

Camel 2.8.1 から利用可能

マルチパート SOAP メッセージは、ServiceInterfaceStrategy によってサポートされます。ServiceInterfaceStrategy は、JAX-WS 2.2 に従ってアノテーションが付けられ、Document Bare スタイルの要件を満たすサービスインターフェース定義で初期化する必要があります。target メソッドは、JAX-WS 仕様に従って以下の基準を満たす必要があります。1 に おい て、ヘッダー以外の戻り値のタイプが void 以外のタイプの場合は、最も 1 つまたは in-out または out non-header パラメーターが必要です。3 は、戻り値のタイプが void である場合には、ほとんどの in/out パラメーターまたは out non-header パラメーターが必要です。

ServiceInterfaceStrategy は、マッピングストラテジーがリクエストパラメーターまたは応答パラメーターに適用されるかどうかを示すブール値パラメーターを使用して初期化する必要があります。

ServiceInterfaceStrategy strat =  new ServiceInterfaceStrategy(com.example.customerservice.multipart.MultiPartCustomerService.class, true);
SoapJaxbDataFormat soapDataFormat = new SoapJaxbDataFormat("com.example.customerservice.multipart", strat);

290.4.1. マルチパート要求

マルチパートリクエストのペイロードパラメーターは、ターゲット操作の署名を反映する BeanInvocation オブジェクトを使用して開始されます。camel-soap DataFormat は、marshal() プロセッサーが呼び出されると、BeanInvocation の内容を SOAP ヘッダーおよびボディーのフィールドにマッピングします。

BeanInvocation beanInvocation = new BeanInvocation();

// Identify the target method
beanInvocation.setMethod(MultiPartCustomerService.class.getMethod("getCustomersByName",
    GetCustomersByName.class, com.example.customerservice.multipart.Product.class));

// Populate the method arguments
GetCustomersByName getCustomersByName = new GetCustomersByName();
getCustomersByName.setName("Dr. Multipart");

Product product = new Product();
product.setName("Multiuse Product");
product.setDescription("Useful for lots of things.");

Object[] args = new Object[] {getCustomersByName, product};

// Add the arguments to the bean invocation
beanInvocation.setArgs(args);

// Set the bean invocation object as the message body
exchange.getIn().setBody(beanInvocation);
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.