0
我們有以下情形:創建PDF並通過Apache的駱駝發送郵件
- 客戶發送包含兩個部分XML消息
- 的XML的第一部分包含的信息應該被用於創建的使用FOP組分和XSLT PDF
- 的XML的第二部分包含在該郵件主體中使用的信息,主題等
在駱駝共nfiguration:
- 傳入的XML可以轉化爲XSL:FO(使用XSLT)
- FOP的組件可以被調用,不是一個PDF文件可
- 郵件部件可以被調用,但比我有以下問題
- 包含郵件信息的原始郵件不再可用。一種可能性是將原始主體存儲在標題或屬性中
- PDF應作爲附件添加。我認爲沒有默認的處理器,過濾器等可用於將主體移動到附件。所以我必須寫我自己的處理器
問題
- 任何人都有一個類似的用例例如駱駝配置?
- 可能是一個Splitter模式,但當前的例子在XML文件中有多個順序,我們的XML文件不包含多個項目,但包含一些數據。在這個用例中是否還有另一種模式?
任何建議將非常有幫助。
我試着用下面的駱駝配置,但在合併策略中zip從不存在。它看起來像沒有從createZip路線
<camel:multicast strategyRef="mergeStrategy">
<camel:to uri="direct:createZip"/>
<camel:to uri="direct:createRequestMessage"/>
</camel:multicast>
<camel:to uri="smtp://[email protected]"></camel:to>
</camel:route>
<camel:route>
<camel:from uri="direct:createZip" />
<camel:from uri="file:////data/tmp/zip/input">
<camel:description>Reading files from the input folder</camel:description>
</camel:from>
<camel:aggregate strategyRef="zipStrategy" eagerCheckCompletion="true" completionFromBatchConsumer="true">
<camel:correlationExpression>
<camel:constant>true</camel:constant>
</camel:correlationExpression>
<camel:setHeader headerName="dummybody">
<camel:simple>${body}</camel:simple>
</camel:setHeader>
</camel:aggregate>
<camel:setHeader headerName="Strategy-Attachment">
<camel:constant>true</camel:constant>
</camel:setHeader>
</camel:route>
<camel:route>
<camel:from uri="direct:createRequestMessage" />
<camel:to uri="create_request.xslt?saxon=true" />
<camel:setHeader headerName="Content-Type">
<camel:constant>text/html</camel:constant>
</camel:setHeader>
<camel:setHeader headerName="Strategy-Body">
<camel:constant>true</camel:constant>
</camel:setHeader>
</camel:route>