Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAmerican Flights のインターフェースと実装をデバッグします。
デバッグを容易にするには、Set Variable コンポーネントと Logger コンポーネントを American Flights 実装に追加します。
実装ファイル (implementation.xml
) を開きます。
[Query Flights (フライトを照会)] という名前の Database Select 操作 (<db:select/>
) の後に Set Variable コンポーネントを追加します。
設定 XML で次の <set-variable/>
設定を指定します。
<set-variable value="#[payload]"
doc:name="Set variable Payload"
variableName="databasePayload" />
Set Variable コンポーネントの後に、次の設定を含む Logger コンポーネントを追加します。
<logger doc:name="Log Payload" message="#[
%dw 2.0
output application/json
---
payload]" />
<flow name="getFlights">
<logger doc:name="Logger" doc:id="ahcnzm" />
<db:select doc:name="Query Flights" doc:id="pvuqsc" config-ref="Database_Config" >
<db:sql>
<![CDATA[Select * FROM american]]>
</db:sql>
</db:select>
<set-variable value="#[payload]" doc:name="Set variable Payload"
variableName="databasePayload" doc:id="vtptsr" /> (1)
<ee:transform doc:name="Transform Message" doc:id="uniqueId" >
<ee:message >
<ee:set-payload >
<![CDATA[
%dw 2.0
output application/json
---
payload map ( payload01 , indexOfPayload01 ) -> {
ID: payload01.ID,
code: (payload01.code1 default "") ++ (payload01.code2 default ""),
price: payload01.price default 0,
departureDate: payload01.takeOffDate as String default "",
origin: payload01.fromAirport default "",
destination: payload01.toAirport default "",
emptySeats: payload01.seatsAvailable default 0,
plane: {
"type": payload01.planeType default "",
totalSeats: payload01.totalSeats default 0
}
}
]]>
</ee:set-payload>
</ee:message>
</ee:transform>
<logger doc:name="Log Payload" message="#[
%dw 2.0
output application/json
---
payload]" /> (1)
</flow>
1 | Set Variable コンポーネント |
2 | Logger コンポーネント |
ブレークポイントを追加するに進みます。
アプリケーションの実行を一時停止するブレークポイントのセットアップ方法を確認します。
American Flights プロジェクトにブレークポイントを追加する手順は、次のとおりです。
American Flights プロジェクトのインターフェース (interface.xml
) を開きます。
アクティビティバーで [Run and Debug (実行およびデバッグ)] アイコンを選択します。
実装 (interface.xml
) で、<flow-ref/>
コンポーネントが含まれる行にブレークポイントを追加します。
または、F9 を使用して行にブレークポイントを追加します。
American Flights プロジェクトの実装ファイル (implementation.xml
) を開き、ブレークポイントを <db:select/>
および <set-variable/>
コンポーネントに追加します。
すべてのブレークポイントが [Breakpoints (ブレークポイント)] パネルにリストされるようになりました。
デバッグセッションを開始するに進みます。
デバッグセッションを実行し、アプリケーションの実行中にさまざまなポイントでメッセージと変数を調べます。
[Run and Debug (実行およびデバッグ)] メニューから、[Debug Mule Application (Mule アプリケーションをデバッグ)] をクリックします。
IDE でアプリケーションがパッケージ化され、新しいターミナルが開きます。このターミナルでアプリケーションを埋め込み Mule Runtime Engine にデプロイします。
デバッグセッションが開始されたら、次の手順を実行します。
IDE から、コンソールのターミナルウィンドウを開きます。
デスクトップ IDE で、[View (表示)] > [Terminal (ターミナル)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[Terminal (ターミナル)] > [New Terminal (新規ターミナル)] を選択する。
いずれかの IDE で、Ctrl キーを押してからバッククォートキー (`) を押す。
ターミナルで curl
コマンドを使用して、実装ではなくインターフェース (interface.xml
) のリスナーに対して GET 要求を実行します。
> curl http://localhost:8081/api/flights
インターフェースのリスナーの URI にある /api/flight
に注意してください。この手順の詳細は、「フローをトリガーする」を参照してください。
American Flights プロジェクトの最初のブレークポイントでアプリケーションの実行が停止することを確認します。
ブレークポイントはインターフェースファイル (interface.xml
) に配置されています。
デバッグツールバーで [Step Over (ステップオーバー)] ボタンをクリックして、implementation.xml
の <db:select/>
要素にある次のブレークポイントまで実行を継続します。
[Run and Debug (実行およびデバッグ)] サイドバーの [Variables (変数)] パネルにブレークポイントでの Mule イベントに関する情報が提供されていることを確認します。
デバッグツールバーで [Step Over (ステップオーバー)] ボタンをクリックして、<set-variable/>
要素にある次のブレークポイントまで実行を継続します。
[Variables (変数)] パネルで [Mule Message (Mule メッセージ)] > [Payload (ペイロード)] に移動して、データベース応答がフライトデータの配列になっていることを確認します。
監視式を追加するに進みます。
[Run and Debug (実行およびデバッグ)] サイドバーから [Watch (監視)] パネルを開きます。
パネルの [+] アイコンをクリックし、式 payload.^mediaType
を追加します。
実行が Transform Message コンポーネント (<ee:transform/>
) に移動するまで [Step Over (ステップオーバー)] ボタンをクリックします。
ペイロードが application/java
であることに注意してください。
Logger コンポーネント (<logger>
) に達するまで引き続き [Step Over (ステップオーバー)] ボタンをクリックします。
ペイロードが application/json
に変換されていることに注意してください。
デバッグツールバーの [Continue (続行)] ボタンをクリックし、アプリケーションがデータベースから REST クライアントまたはブラウザーに応答を返すことを確認します。
[
{
"ID": 1,
"code": "rree0001",
"price": 541,
"departureDate": "2016-01-20T00:00:00",
"origin": "MUA",
"destination": "LAX",
"emptySeats": 0,
"plane": {
"type": "Boeing 787",
"totalSeats": 200
}
},
{
"ID": 2,
"code": "eefd0123",
"price": 300,
"departureDate": "2016-01-25T00:00:00",
"origin": "MUA",
"destination": "CLE",
"emptySeats": 7,
"plane": {
"type": "Boeing 747",
"totalSeats": 345
}
},
{
"ID": 3,
"code": "ffee0192",
"price": 300,
"departureDate": "2016-01-20T00:00:00",
"origin": "MUA",
"destination": "LAX",
"emptySeats": 0,
"plane": {
"type": "Boeing 777",
"totalSeats": 300
}
},
{
"ID": 4,
"code": "rree1000",
"price": 200,
"departureDate": "2016-01-20T00:00:00",
"origin": "MUA",
"destination": "CLE",
"emptySeats": 5,
"plane": {
"type": "Boeing 737",
"totalSeats": 150
}
},
{
"ID": 5,
"code": "rree1093",
"price": 142,
"departureDate": "2016-02-11T00:00:00",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 1,
"plane": {
"type": "Boeing 737",
"totalSeats": 150
}
},
{
"ID": 6,
"code": "ffee1112",
"price": 954,
"departureDate": "2016-01-20T00:00:00",
"origin": "MUA",
"destination": "CLE",
"emptySeats": 100,
"plane": {
"type": "Boeing 787",
"totalSeats": 200
}
},
{
"ID": 7,
"code": "eefd1994",
"price": 676,
"departureDate": "2016-01-01T00:00:00",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 0,
"plane": {
"type": "Boeing 777",
"totalSeats": 300
}
},
{
"ID": 8,
"code": "ffee2000",
"price": 300,
"departureDate": "2016-02-20T00:00:00",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 30,
"plane": {
"type": "Boeing 737",
"totalSeats": 150
}
},
{
"ID": 9,
"code": "eefd3000",
"price": 900,
"departureDate": "2016-02-01T00:00:00",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 0,
"plane": {
"type": "Boeing 737",
"totalSeats": 150
}
},
{
"ID": 10,
"code": "eefd4511",
"price": 900,
"departureDate": "2016-01-15T00:00:00",
"origin": "MUA",
"destination": "LAX",
"emptySeats": 100,
"plane": {
"type": "Boeing 777",
"totalSeats": 300
}
},
{
"ID": 11,
"code": "rree4567",
"price": 456,
"departureDate": "2016-01-20T00:00:00",
"origin": "MUA",
"destination": "SFO",
"emptySeats": 100,
"plane": {
"type": "Boeing 737",
"totalSeats": 150
}
}
]
デバッグセッションを停止するに進みます。