Bean を使用して、保持したいヘッダーとプロパティをスレッド ローカル メンバーに格納できます。すべてのヘッダー/プロパティを保持および復元する簡単な例は、次のようになります。
public class BeanToHoldHeadersAndProps {
ThreadLocal<Map<String,Object>> headers = new ThreadLocal<>();
ThreadLocal<Map<String,Object>> props = new ThreadLocal<>();
public void saveHeaders(Exchange exchange) {
headers.set(exchange.getIn().getHeaders());
props.set(exchange.getProperties());
}
public void restoreHeaders(Exchange exchange) {
exchange.getIn().setHeaders(headers.get());
exchange.getProperties().putAll(props.get());
}
}
ルート:
<camel:route id="header_preserving_route">
<camel:from url="activemq:xyz" />
<camel:bean ref="headerPreserver" method="saveHeaders" />
<camel:to url="smpp:abc" />
<camel:bean ref="headerPreserver" method="restoreHeaders" />
<camel:to url="cxf:hij" />
</camel:route>
要件に応じて、引き継がれる 3 番目の要素があります。これは、交換の添付ファイルです。