Red Hat Training

A Red Hat training course is available for Red Hat Fuse

214.5. sync=true のサンプル

次のサンプルでは、ポート 6201 で TCP サービスを公開し、テキストラインコーデックも使用する、より一般的なユースケースがあります。ただし、今回は応答を返す必要があるため、コンシューマーで sync オプションを true に設定します。

from("mina2:tcp://localhost:" + port2 + "?textline=true&sync=true").process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        String body = exchange.getIn().getBody(String.class);
        exchange.getOut().setBody("Bye " + body);
    }
});

次に、いくつかのデータを送信し、template.requestBody() メソッドを使用してレスポンスを取得することにより、サンプルをテストします。レスポンスが String であることがわかっているので、それを String にキャストし、レスポンスが実際にはプロセッサーコードロジックで動的に設定したものであると断言できます。

String response = (String)template.requestBody("mina2:tcp://localhost:" + port2 + "?textline=true&sync=true", "World");
assertEquals("Bye World", response);