Mule アプリケーションのデバッグ

logo cloud IDE Cloud IDE

logo desktop IDE Desktop IDE

進行中のベータリリース​: クラウド IDE は進行中のベータリリースです。ベータ状態での Anypoint Code Builder の使用には、IDE で入手できる、該当するベータサービス契約条件が適用されます。

Anypoint Code Builder の埋め込みデバッガーを使用して Mule アプリケーションをデバッグします。

Mule アプリケーションをデバッグするプロセスは、次のとおりです。

  1. ブレークポイントを設定​し、調査または修正を行う行でフローの実行を一時停止します。

    ブレークポイントは、開発している Mule アプリケーションの設定 XML ファイルの行番号に追加するマーカーです。

  2. デバッグモードでアプリケーションを実行します​。

  3. Mule アプリケーションでフローの実行を開始します。

    たとえば、HTTP リスナーをトリガーしたり、Scheduler コンポーネントを設定したりします。

  4. ブレークポイントで実行が停止したら、​デバッグツールバー​を使用して、操作、調査、問題の修正を行います。

  5. ブレークポイントで問題に対処したら、実行中のアプリケーションインスタンスを再デプロイ (​ホットデプロイ​) します。

  6. フローを再度実行し、すべての問題に対処するまでデバッグを継続します。

  7. デバッグセッションを停止します​。

デバッグコンソールの概要

デバッガービューの各要素
1 [Start Debugging (デバッグを開始)]​: デバッグモードで Mule アプリケーションのインスタンスを開始します。
2 [Debug Toolbar (デバッグツールバー)]​: Mule アプリケーションのデバッグを制御します。

デバッグツールバー​を参照してください。

3 [Variables (変数)]​ パネル: Mule イベントとパラメーターデータを提供します。

Mule イベントには、メッセージペイロードと属性の詳細のほか、Mule 変数データが含まれます。パラメーターには、コンポーネント名などのコンポーネントデータが含まれます。

4 [Run and Debug (実行およびデバッグ)]​ (MuleSoft) アイコン: [Run and Debug (実行およびデバッグ)]​ パネルを開きます。ここで、​[Start Debugging (デバッグを開始)] (F5)​ をクリックしてデバッグ情報を見つけることができます。

キーボードショートカット: Cmd+Shift+d (Mac) または Ctrl+Shift+d (Windows)

5 [Watch (監視)]​ パネル: 変数と式を評価するのに役立ちます。
6 [Call Stack (コールスタック)]​ パネル: 現在スタックしている関数またはプロシージャーを特定します。
7 [Breakpoints (ブレークポイント)]​ パネル: Mule アプリケーション内のすべてのブレークポイントをリストします。
8 [Terminal (ターミナル)]​ コンソール: Maven ビルドプロセスの出力と、埋め込み Mule Runtime Engine へのデプロイメントの結果を表示します。
9 [Breakpoint (ブレークポイント)]​ アイコン: 問題の確認と修正ができるようにフローの実行を一時停止する、設定 XML の行を特定します。

ブレークポイントを追加する

ブレークポイントを使用すると、特定の場所で Mule アプリケーションを一時停止して、発生した内容を確認できます。

Mule アプリケーションにブレークポイントを追加する手順は、次のとおりです。

  1. Anypoint Code Builder の [Explorer] ビューで、​my-project-name.xml​ などの設定 XML ファイルを開きます。

  2. [Run and Debug (実行とデバッグ)] パネルを開きます。

    手順を表示
    • アクティビティバーの ​​ (​Run and Debug (実行とデバッグ)​) アイコンをクリックする。

    • キーボードショートカットを使用する。

      • Mac: Cmd+Shift+d

      • Windows: Ctrl+Shift+d

    • デスクトップ IDE で、​[View (表示)]​ > ​[Run (実行)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[View (表示)]​ > ​[Run (実行)]​ を選択する。

  3. <flow-ref>​ コンポーネント内の行番号をクリックして、そのコンポーネントにブレークポイントを追加します。

    行番号でブレークポイントを追加

    F9 を使用して現在の行にブレークポイントを追加することもできます。

  4. 設定 XML ファイルで、​<db:select>​ コンポーネントと ​<set-variable>​ コンポーネント用の 2 つのブレークポイントをさらに追加します。

すべてのブレークポイントは ​[Breakpoints (ブレークポイント)]​ パネルに表示されます。

[Breakpoints (ブレークポイント)] パネル

デバッグモードでアプリケーションを実行する

デバッグ条件を設定したら、デバッグセッションを実行し、各ブレークポイントで Mule アプリケーションを評価します。

  1. [Run and Debug (実行とデバッグ)] パネルを開きます。

    手順を表示
    • アクティビティバーの ​​ (​Run and Debug (実行とデバッグ)​) アイコンをクリックする。

    • キーボードショートカットを使用する。

      • Mac: Cmd+Shift+d

      • Windows: Ctrl+Shift+d

    • デスクトップ IDE で、​[View (表示)]​ > ​[Run (実行)]​ を選択する。

    • クラウド IDE で、​​ (メニュー) アイコンをクリックし、​[View (表示)]​ > ​[Run (実行)]​ を選択する。

  2. [Debug Mule Application (Mule アプリケーションをデバッグ)]​ の ​​ (​Start Debugging (F5) (デバッグを開始 (F5))​) アイコンをクリックします。

    または、​[Start Debugging (F5) (デバッグを開始 (F5))]​ アイコンが存在しない場合は、次の手順を実行します。

    1. [Run and Debug (実行とデバッグ)]​ をクリックします。

    2. [Select debugger (デバッガーを選択)]​ ドロップダウンメニューが表示された場合は、​[Mule XML Debugger (Mule XML デバッガー)]​ を選択してデバッグセッションを開始します。

      [Run and Debug (実行とデバッグ)] ボタンと [Mule Xml Debugger (Mule XML デバッガー)] メニュー項目

      アプリケーションが正常にデプロイされると、出力パネルに ​DEPLOYED​ ログメッセージが表示されます。

      **********************************************************************
      *              - - + DOMAIN + - -               * - - + STATUS + - - *
      **********************************************************************
      * default                                       * DEPLOYED           *
      **********************************************************************
[Run (実行)]​ > ​[Start without Debugging (デバッグなしで実行)]​ を選択すると、エラーが発生します。

Anypoint Code Builder でアプリケーションがパッケージ化され、埋め込み Mule Runtime Engine にデプロイされます。 ターミナルが開き、状況を参照できます。

ターミナルウィンドウでのデバッグの状況

ターミナルにメッセージが表示されます。ステータスバーが赤に変わり、アプリケーションが実行中であることが示されます。

デバッグツールバー​のボタンを使用して、Mule アプリケーションのデバッグを制御します。

デバッグツールバー

デバッグツールバー
1 [Continue (続行)]​ F5

次のブレークポイントがある場合、そのブレークポイントに進んでアプリケーションの実行を一時停止します。 ない場合、アプリケーションの最後まで続行します。

2 [Step Over (ステップオーバー)]​ F10

フローの次のコンポーネントに進み、そこで実行を一時停止します。 Flow Ref コンポーネント (​<flow-ref/>​) で ​[Step Over (ステップオーバー)]​ をクリックすると、フローの次のステップに進みますが、参照先のフローへの Flow Ref ロジックに従う、つまり別のフローに進むことは​ありません​。

[Step Over (ステップオーバー)] の詳細

設定 XML の例​:

<flow name="flow1" doc:name="Flow" >
  <http:listener path="greet" config-ref="HTTP_Listener_config" doc:name="Listener"/>
  <flow-ref name="myNewFlow" /> (1)
  <logger doc:name="Logger1" message="test1"/> (2)
</flow>

<flow name="flow2" doc:name="Flow" >
  <logger doc:name="Logger2" message="test2"/>
</flow>

[Step Over (ステップオーバー)] の動作​:

1 <flow-ref/>​ ロジックをスキップする
2 Logger1​ という名前の ​<logger/>​ に達する
3 [Step Into (ステップイン)]​ F11

フローの次のコンポーネントに進み、そこで実行を一時停止します。 Flow Ref コンポーネント (​<flow-ref/>​) で ​[Step Into (ステップイン)]​ をクリックすると、コンポーネントのロジックに従って、参照先のフローの最初のコンポーネントに進みます。フローのコンポーネントが Flow Ref コンポーネントの後に続く場合、​[Step Into (ステップイン)]​ では、参照先のフローの最後のコンポーネントの後にそのコンポーネントに戻ります。

[Step Into (ステップイン)] の詳細

設定 XML の例​:

<flow name="flow1" doc:name="Flow" >
  <http:listener path="greet" config-ref="HTTP_Listener_config" doc:name="Listener"/>
  <flow-ref name="myNewFlow" /> (1)
  <logger doc:name="Logger1" message="test1"/> (3)
</flow>

<flow name="myNewFlow" doc:name="Flow" >
  <logger doc:name="Logger2" message="test2"/> (2)
</flow>

[Step Into (ステップイン)] の動作​:

1 <flow-ref/>​ に入り、​myNewFlow​ へのロジックに従う
2 次のフロー ​myNewFlow​ の ​Logger2​ に達する
3 フロー ​flow1​ に戻り、​Logger1​ に達する
4 [Step Out (ステップアウト)]​ Shift+F11

現在のフローを終了し、前のフローに戻ろうとします。前のフローが存在しない場合、デバッガーは ​[Continue (続行)]​ と同様に動作します。

5 [Restart (再起動)]​ Shift+Cmd+F5 (Mac) または Shift+Ctrl+F5 (Windows)

pom.xml​ ファイル内の新しいコネクタ連動関係など、新しい連動関係をパッケージ化せずにアプリケーションを停止して再起動します。

6 [Stop (停止)]​ Shift+F5

アプリケーションの実行を停止します。開始する次のデバッグセッションでは、新しい連動関係でアプリケーションがパッケージ化されます。

デバッグ時にホットデプロイを実行する

アプリケーションをデバッグしているときに、ホットデプロイメントを定期的に実行します。 ホットデプロイメントでは、実行中のアプリケーションインスタンスは更新されますが、​pom.xml​ 内の新しいコネクタ連動関係など、新しい連動関係はパッケージ化されません。

ホットデプロイを実行する手順は、次のとおりです。

  1. Mule アプリケーションが IDE で実行されていることを確認します。

  2. アプリケーションを更新します。

  3. [Save and Hot-deploy to Mule Runtime (保存して Mule Runtime にホットデプロイ)]​ (稲妻) アイコンをクリックして、変更を含むアプリケーションをデプロイします。

    実行中の Mule アプリケーションの [Hot-deploy (ホットデプロイ)] (稲妻) アイコン

デバッグセッションの停止

デバッグセッションを停止するには、​[Run and Debug (実行およびデバッグ)]​ パネルで ​​ (​[Stop (停止)]​) アイコンをクリックします。

ステータスバーで、アプリケーションが実行中であることが示されなくなります。