我正在使用 Apache camel 将一些 SOAP 消息从 A 路由到 B。
我想为某些特定路由添加日志记录,但问题是消息正文是一个流。
我的解决方案是将该流转换为字符串,然后将其发送到端点 B。
这似乎工作正常,但我不确定这种方法有多干净?
这就是我的路线现在的样子:
<route>
<from uri="cxf:bean:ServiceA?dataFormat=MESSAGE" />
<convertBodyTo type="java.lang.String"/>
<to uri="log:my.company?level=WARN"/>
<to ref="ServiceB" />
</route>
问题是我是否应该使用wireTap 和流缓存来复制流、将其转换为字符串、记录它并将另一个未触及的流发送到ServiceB。我找不到正确执行此操作的方法。这是我的尝试:
<route streamCache="true">
<from uri="cxf:bean:ServiceA?dataFormat=MESSAGE" />
<wireTap uri="log:my.company?level=WARN" /> <!-- how to convert this stream to a string? -->
<to ref="ServiceB" />
</route>
你认为呢?WireTap还是上述解决方案?