Apache Camel:为每个用户会话编写单个文件

时间:2013-03-28 17:34:25

标签: java apache apache-camel

我正在编写一个实用程序来记录用户的HTTP请求。使用Camel的文件组件来实现它 现在写,因为覆盖默认值文件组件正在为每个HTTPRequest写入新文件 我可以将其更改为Append但不会为所有用户会话提供单个文件吗? 我希望每个用户会话都有单独的文件。但请求将附加给同一用户。 路线就像:

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

1 个答案:

答案 0 :(得分:2)

你可以

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

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

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

或者使用Camel处理器,在Exchange IN消息中设置标题。

<process ref="myProcessor"/>

2) 使用动态收件人列表eip动态计算端点。请参阅此常见问题解答:http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html