Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこのチュートリアルでは、Web ブラウザーから送信された要求に対して「Hello Mule」というメッセージを返す例を使用して、Mule アプリケーションがどのようにやり取りするのかをシンプルな HTTP 要求-返信フローで実際に示します。
この例は非常にシンプルです。より複雑なアプリケーションでは、外部サーバー (SAP、Salesforce、データベース、FTP サーバーなど) への接続、Mule プロジェクト内での API 仕様の直接インポートと実装、セキュリティのセットアップ、データの処理や変換などをプログラムで行うことができます。これらの作業の説明は、この例のスコープを超えています。
このアプリケーションは、Anypoint Studio でプロジェクトとしてセットアップして実行します。
「Anypoint Studio」に説明されている Anypoint Studio UI (パレット、キャンバス、フロー) の操作に関する知識
Anypoint Studio をインストールしたら、例をセットアップして実行できます。
Hello Mule の例は、1 つのシンプルな Mule フローで構成されています。このフローは、HTTP 要求を受け入れ、メッセージに対して静的ペイロードを設定して、応答を返します。
インバウンド HTTP エンドポイントは、Web サービスに対して送信された要求を受け取ります。 メッセージ交換パターンは要求-応答であるため、HTTP エンドポイントはメッセージの受信と返信を管理します。
Set Payload コンポーネントは、その名前が示すようにメッセージペイロードに値を設定します。この例では、値として DataWeave 式を使用して静的文字列をペイロードに対して設定します。
以下の手順に従って、自分の Anypoint Studio インスタンスで例を作成してください。Anypoint Studio でテンプレートアプリケーションを作成し、ユースケースに基づいたテンプレートの設定を調整することで、Mule でカスタムアプリケーションを作成することができます。
Anypoint Studio で hellomule
という名前のプロジェクトを作成します。
[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)] を選択し、表示されたダイアログの [Project Name (プロジェクト名)] に「hellomule」と入力します。
プロジェクト名には、空白スペースを含めません。
[Finish (完了)] をクリックします。
HTTP Listener コンポーネントを hellomule のキャンバスにドラッグします。
プロジェクトの [Mule Palette (Mule パレット)] タブで [HTTP] をクリックします。
Listener コンポーネントを hellomuleFlow キャンバスにドラッグします。
[Listener] タブの設定 UI が開いていない場合は、キャンバスの Listener コンポーネントをクリックして開きます。
タブ内に赤いボックスが表示されていますが、これは [Connector configuration (設定)] と [Path (パス)] の項目に値が必要であるためです。
[Listener] タブで Listener コンポーネントを設定します。
リスナーの [Path (パス)] 項目にパス /hellomule
を入力します。
リスナーの [Connector configuration (設定)] 項目の下にある緑色のプラスアイコン (+) をクリックして、[HTTP Listener config (HTTP Listener 設定)] ダイアログを開きます。
ダイアログで [Test Connection (接続をテスト)] をクリックして、デフォルトのリスナー設定を確認します。
接続に成功すると、[Test connection (接続をテスト)] ダイアログが開いて「Test connection successful! (テスト正続に成功しました)」と表示されます。
接続に失敗した場合は、使用していないポート番号 (8082
や 8083
など) を使用して接続を再テストしてから、設定を追加してください。
[OK] をクリックして、有効な設定をプロジェクトに追加します。
[Mule Palette (Mule パレット)] タブで [Core (コア)] をクリックし、Set Payload コンポーネントを見つけてキャンバスの [Process (プロセス)] エリアにドラッグします。
Set Payload コンポーネントが見つからない場合は、[Mule Palette (Mule パレット)] タブの一番上にある検索項目を試してください。
[Set Payload] タブの設定 UI が開いていない場合は、Set Payload コンポーネントをクリックして設定 UI を開いてください。
Set Payload コンポーネントの [Value (値)] 項目で [fx] 項目を選択解除して、文字列 "Hello Mule!"
を入力します。
[fx] の選択を解除すると、項目のコンテンツは文字列 "Hello Mule"
のみとなり、ハッシュ (#
) や角括弧 ([]
) は含まれません。
[Mule Palette (Mule パレット)] タブで [Core (コア)] をクリックし、Logger コンポーネントを探して Transform Message コンポーネントの右側にドラッグします。
Logger コンポーネントが見つからない場合は、[Mule Palette (Mule パレット)] タブの一番上にある検索項目を試してください。
[Logger] タブの設定 UI が開いていない場合は、キャンバスの Logger コンポーネントをクリックして開きます。
ロガーの [Message (メッセージ)] 項目で、[fx] ボタンをクリックして、要求パスを Anypoint Studio コンソールに出力するために次の DataWeave 式を追加します。
attributes.requestPath
Anypoint Studio で [File (ファイル)] > [Save (保存)] を選択してプロジェクトを保存します。
Hello Mule の例を実行してテストするに進みます。
Anypoint Studio で Hello Mule をセットアップしたら、実行してテストします。
Anypoint Studio キャンバスを右クリックし、[Run project hellomule (hellomule プロジェクトを実行)] を選択して hellomule アプリケーションを実行します。
または、Anypoint Studio の一番上にある 「Run (実行)」 ボタン () をクリックして、表示されたドロップダウンメニューから hellomule を選択することもできます。
どちらの操作を実行した場合もビルドプロセスが開始され、Anypoint Studio コンソールが開いて、2 フェーズのビルドおよびデプロイメントプロセスに関する重要なログ情報が表示されます。
最後が次のようになっているメッセージが Anypoint Studio コンソールに表示されれば、プロジェクトは実行中です。
**********************************************************
* - - + DOMAIN + - - * - - + STATUS + - - *
**********************************************************
* default * DEPLOYED *
**********************************************************
*******************************************************************************
* - - + APPLICATION + - - * - - + DOMAIN + - - * - - + STATUS + - - *
*******************************************************************************
* hellomule * default * DEPLOYED *
*******************************************************************************
DEPLOYED
通知ではなく失敗通知 (FAILED
) が表示された場合は、エラーメッセージを確認してください。次のようなメッセージが表示された場合は、HTTP Listener の設定で別の HTTP ポートを指定してください。
Could not create server: A server in port(8081) already exists
for host(0.0.0.0) or one overlapping it (0.0.0.0).`
その後、プロジェクトを保存して再実行します。エラーが繰り返される場合は、ホストを localhost
に変更してみてください。
アプリケーションが実行されたら、ブラウザーウィンドウを開き、リスナーへの URL を入力してアプリケーションをトリガーします。
HTTP Listener で設定されているのと同じホストとポート (例: http://0.0.0.0:8081/hellomule
) を使用する必要があります。
ブラウザーに Hello Mule!
のメッセージが表示されることを確認します。
Anypoint Studio の [Console (コンソール)] タブに表示されるメッセージで、最初の INFO
行の最後に要求のパス (/hellomule
) が付加されていることを確認します (org.mule.runtime.core.internal.processor.LoggerMessageProcessor: /hellomule
)。
次の XML は、例で使用したフローと HTTP Listener の設定を示しています。スペースを節約するため、必要のない doc:id
属性は省略してあります。
<http:listener-config name="HTTP_Listener_config"
doc:name="HTTP Listener config" >
<http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="hello-muleFlow" >
<http:listener doc:name="Listener"
config-ref="HTTP_Listener_config"
path="/hellomule"/>
<set-payload value="Hello Mule!"
doc:name="Set Payload"
mimeType="text/plain"/>
<logger level="INFO"
doc:name="Logger"
message="#[attributes.requestPath]"/>
</flow>
キャンバスの下にある [XML Configuration (XML 設定)] タブは、XML の編集ページを提供します。