241.7. 完了時にチャネルを閉じる
サーバーとして機能している場合、たとえばクライアントの変換が終了したときにチャネルを閉じたい場合があります。
これは、エンドポイントオプションの disconnect=true を設定するだけで実行できます。
ただし、次のようにメッセージごとに Camel に指示することもできます。
Camel にチャネルを閉じるように指示するには、キー CamelNettyCloseChannelWhenComplete をブール値 true に設定したヘッダーを追加する必要があります。
たとえば、次の例では、bye メッセージをクライアントに書き戻した後にチャネルを閉じます。
from("netty4:tcp://0.0.0.0: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);
}
}
});カスタムチャネルパイプラインファクトリーを追加して、作成されたパイプラインを完全に制御します