229.6. 完了後にチャンネルを閉じる
サーバーとして動作する場合は、クライアント変換の完了時にチャネルを閉じる必要がある場合があります。
これは、endpoint オプション disconnect=true を設定するだけで実行できます。
ただし、以下のようにメッセージごとに Camel に指示することもできます。
Camel にチャネルを閉じるよう指示するには、CamelNettyCloseChannelWhenComplete キーでヘッダーをブール値 true に追加する必要があります。
たとえば、以下の例では bye メッセージをクライアントに書き直した後にチャンネルを閉じます。
from("netty4:tcp://localhost:8080").process(new Processor() {
public void process(Exchange exchange) throws Exception {
String body = exchange.getIn().getBody(String.class);
exchange.getOut().setBody("Bye " + body);
// some condition which determines if we should close
if (close) {
exchange.getOut().setHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
}
}
});
カスタムチャネルパイプラインファクトリーを追加して、以下を完全に制御