2013-03-28 24 views
0

我正在编写一个实用程序来记录用户的HTTP请求。使用骆驼的文件组件来实现它。
由于覆盖默认值而立即写入文件组件正在为每个HTTPRequest写入新文件。
我可以将其更改为Append但它不会为我提供所有用户会话的单个文件吗? 我想为每个用户会话分开文件。但是请求会附加给同一个用户。 路线是这样的:Apache Camel:为每个用户会话编写单个文件

<route> 
      <from uri="seda:saveRequestMessageForTesting"/> 
      <log message="Request Message is ${body}"/> 
      <to uri="file://src?fileName=req.txt?fileExist=Append"/> 
     </route> 

回答

2

您可以

1) 设置一个头的文件名来写,这将优先于你有req.txt配置的文件名。在到达文件之前,您需要设置此标题。

例如,我们可以调用的方法在bean来计算文件名称:

<setHeader headerName="CamelFileName"> 
    <method ref="myBean" method="myMethod"/> 
</setHeader> 

或者使用骆驼处理器,在其中设置在交换邮件的标题。

<process ref="myProcessor"/> 

2) 使用动态收件人列表EIP,你动态地计算的端点。看到这个FAQ:http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html