Flex Gateway新着情報
Governance新着情報
Monitoring API Managerフローの情報を生成したら、ソースは SourceCallback
を使用してフローにその情報を送信します。最小限の HTTP リスナーの例に戻ります。
public class HttpListener extends Source<InputStream, HttpRequestAttributes> {
@Override
public void onStart(SourceCallback<InputStream, HttpRequestAttributes> sourceCallback) throws MuleException {
httpServer = serverProvider.connect(); (1)
server.listen(path).onRequest(request -> { (2)
Result<InputStream, HttpRequestAttributes> result = requestToResult(request); (3)
sourceCallback.handle(result); (4)
});
}
}
1 | この例では、ConnectionProvider を使用して HttpServer を取得します。一般的な接続プロバイダーの場合、適切なホストとポートを使用してすでにサーバーが設定されています。 |
2 | リモートクライアントが HTTP 要求をサーバーにプッシュし、HttpServer コンポーネントが各要求のソースを通知します。次に、ソースが SourceCallback を使用してメッセージをフローにプッシュします。 |
3 | メッセージは、操作が複雑な出力を伝えるために使用する同じ Result オブジェクトを利用して表されます。詳細は、Result オブジェクトについての説明を参照してください。 |
4 | この例では、SourceCallback の handle(Result) メソッドを使用してメッセージを渡します。 |
handle(Result)
メソッドを介して Result
オブジェクトが SourceCallback
に渡されると、メソッドを呼び出すスレッドとは異なるスレッドでメッセージ処理が非同期で実行されます。
次のステップでは、フロー処理の結果をキャッチし、必要に応じて応答を送信する方法について説明します。