如何使用Camel / Wire Tap记录审核响应?

时间:2015-09-18 12:33:47

标签: apache-camel

我们需要审核Servlet路由。

我们已经研究过使用Wire Tap,它会将新的HTTP请求发布到单独的审计端点。

我们使用Wire Tap的原因是我们不会阻止Servlet路由。

我们的问题是我们需要记录来自审计端点的HTTP响应。我们的理解是Wire Tap组件是InOnly,因此不会捕获响应。

我们目前的想法是在窃听后将审核请求推送到队列。然后,我们将请求从队列中取出,并调用审计端点记录响应。

这是最好的方法还是有更好的方法?

我们可以使用“setExchangePattern”来制作Wire Tap InOut吗?如果是这样会阻止主要路线?

我们已经看到有一个OnCompletion处理程序,但不确定这对我们是否有用。它会再阻止主要路线吗?

2 个答案:

答案 0 :(得分:1)

我们似乎已经解决了这个问题,方法是将Wire Tap指向一条直接路由,然后将该呼叫指向审计端点并记录响应。

这允许我们在异步记录审计响应的同时仍然传回主的outgoingEndpoint响应。

- (IBAction)uploadPic:(UIButton *)sender
{
    NSData *dataImage = UIImageJPEGRepresentation(self.imageView.image, 1.0f);
    // Do your stuff here
}

答案 1 :(得分:0)

有线分接头正在点击当前消息。因此,您可以使用路线末端的有线分接头,假设当前消息是响应的内容。

为此你也可以在结束时使用完成时使用,但如果它更通用并且适用于更多路线等,你可以在完成时使用。

请注意,线控是异步的,并在单独的线程中路由消息,然后您可以同时访问来自写入响应的消费者的消息,以及何时进行审核。如果您不需要异步,则可以跳过电话线并直接在路径末端进行审核。