知る・学ぶ

Mule のフローでやりとりされているメッセージについて

Mule のフローでは、設置したコンポーネントとコンポーネントの間でメッセージの受け渡しが行なわれています。
どのようなメッセージが流れてきているか、どのように参照すればよいかをご紹介します。

どのようなメッセージが流れているかを確認するには、AnipointStudio の右下のウィンドウを参照します。
http アクセスで開始されるプログラムを例にして確認してみます。

http の次のコンポーネントをダブルクリックし、ウィンドウを確認します。
今回は2番目に「Set Payload」、3番目に「Logger」を配置します。

Muleのフローでやりとりされているメッセージについて

受け取っているメッセージは右下のウィンドウにある一覧より確認することができます。

Muleのフローでやりとりされているメッセージについて

各パラメータの右にString やMap といったものが表示されていますが、メッセージがどのような形で受け渡されているかを示しています。
この中にPayload というパラメータがありますが、これは前のフローから受け取るメッセージになります。
この時点でPayload がUnknown となっているのは前のフローからのメッセージがないことを表しています。

Muleのフローでやりとりされているメッセージについて

次にパラメータを実際に参照するためにはどのようにすればよいかをご紹介します。
「Set Payload」を選択した状態で、フロー図の下にあるウィンドウの中のvalueで指定します。
#を入力すると候補があがるので「#[message]」を選択します。
ドットを入力すると候補があがるので「inboundProperties」を選択します。
そこからさらにドットを入力するとhttp の様々なパラメータが候補としてあがりますので参照したいパラメータを選択するとパラメータの参照の指定が完了になります。
今回はhttp.query.string を確認してみます。
valueの値は#[message.inboundProperties.’http.query.string’]になります。

Muleのフローでやりとりされているメッセージについて

Logger を選択した状態でPayload の部分を確認すると「SetPayLoad」ではUnknown となっていたのがString となっていることが確認できます。

Muleのフローでやりとりされているメッセージについて

先ほどと違い文字列型のメッセージを受け取っているという形になります。
Payload をログに出力するように設定しますので、value の値を#[payload]とします。

Muleのフローでやりとりされているメッセージについて

この状態でプロジェクトを起動し「http://localhost:8081?message=test」とアクセスすると、ブラウザにmessage=test が表示されます。

Muleのフローでやりとりされているメッセージについて

またコンソールにもmessage=test がログに出力されるのが確認できます。

Muleのフローでやりとりされているメッセージについて

Mulesoft のフローの中でどのようなメッセージのやりとりが行なわれているか、少しイメージできるのではないかと思います。

, ,
知る・学ぶ