2017-09-27 20 views
1

フロー-1では、送信者にjsonタイプの添付ファイルトランスフォーマとテキストファイルが2セットあります。私は、httpリクエストコンポーネントを持つ別のアプリケーション(受信者)を呼び出しています。受信機では、この添付ファイルを受信添付ファイルペイロードとして取得していますが、送信添付ファイルペイロードとして取得していません。 smtp/emailを送信中に、この添付ファイルが追加され、削除できません。名前の値を取得している添付ファイルが添付されています

*としてワイルドカード名のコピーアタッチメントを使ってみましたが、message.inboundAttachments ['test.json']として値を指定して添付ファイルを削除しようとしました。 私は、すべてのタイプの添付ファイル(set/copy/remove)は、アウトバウンド・アタッチメントでは機能し、インバウンド・アタッチメントでは機能しません。

1)インバウンド添付ファイルからファイルを削除するにはどうすればよいですか?私のように、送信側で設定した受信機でのペイロードの値を取得するにはどうすればよい 2) 'いくつかのデータ'

コード:

送信者:

<set-attachment attachmentName="test.json" value="{'Hi':'Hello'}" contentType="text/plain" doc:name="Attachment-JSON"/> 
<set-attachment attachmentName="inputdata.json" value="{'k1':'v1','k2':'v2'}" contentType="text/plain" doc:name="Attachment"/> 
<set-payload value="#['some data']" doc:name="Set Payload"/> 
<http:request config-ref="HTTP_Request_Configuration" path="path2" method="POST" doc:name="HTTP"/> 

受信機:

<http:listener config-ref="HTTP_Listener_Configuration" path="path2" allowedMethods="POST" doc:name="HTTP"/> 
<foreach collection="#[message.inboundAttachments]" doc:name="For Each"> 
    <logger message="FileName with key: #[key] ==Initial Payload: ====#[message.payloadAs(java.lang.String)]" level="INFO" doc:name="Logger"/> 
</foreach> 
<remove-attachment attachmentName="#[message.inboundAttachments'test.json']" doc:name="Attachment"/> 
<set-attachment attachmentName="myfile.json" value="#[{'t':'v'}]" contentType="text/plain" doc:name="Attachment-outbound"/> 

メールに添付ファイルが3つあります。 debug-values

ミュールバージョン:彼らは不変であるため、ミュールで3.8

答えて

0

インバウンドプロパティを削除することはできません。おそらくインバウンドの添付ファイルはこのルールの例外ではありません。 Mule doc on message structure通り:

受信特性が不変であり、自動的に メッセージソースによって生成され、ユーザによって設定または操作することができません。

2つ目は、ペイロードがHTTPエンドポイントを経由しないことです。受信機のペイロードはNullPayloadのように見えます。ここでは、呼び出す前に明示的に「何らかのデータ」を設定しています。 代わりにMEL式を使用せずに<set-payload value="some data" doc:name="Set Payload"/>を設定し、送信側のHTTPコールの直前に#[ペイロード]を示すロガーを追加して、ペイロードが正しく設定されていることを確認してください。私はそれに応じて私の答えを編集します。

+0

あなたが示唆したように私は試しましたが、それはヌル値として来ます。 – TechFind

+0

ロガーは送信者のフローに何を表示しますか? –

+0

送信側では「何らかのデータ」であり、受信側ではスクリーンショットに示すようにnullです。 – TechFind

関連する問題