我正在编写一个实用程序来记录用户的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>
答案 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