2013-03-28 26 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