我的目标是阅读2个文件。2我的逻辑如下:我读取第一个文件,如果它是由各种头文件强加的txt文件,然后我通过pollEnrich读取第二个文件,但我之前设置的头文件已经不存在了。下面是我的代码:
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="StartProcessCamunda">
<!--Questa linea di codice guarda la cartella input e quando viene inserito un file lo muove dentro la cartella processed/data di oggi/ se non esiste la data di oggi la crea -->
<from uri="file:/input?move=processed/${date:now:dd-MM-yyyy}/${file:name}"/>
<setHeader name="OnlyFileNamePDF">
<simple>
${file:onlyname.noext}
</simple>
</setHeader>
<choice>
<when>
<simple>${file:ext} == "pdf"</simple>
<log message="Prima poll = ${header.FileNamePDF}"/>
<pollEnrich>
<simple>file:/input?fileName=${header.OnlyFileNamePDF}.xml&noop=true</simple>
</pollEnrich>
<log message="Dopo poll = ${header.FileNamePDF}"/>
<marshal>
<base64 lineLength="100000000000" />
</marshal>
<setHeader name="FileXML">
<simple>${bodyAs(String).lines[0]}</simple>
</setHeader>
<setHeader name="FileNameXML">
<simple>
${file:name}
</simple>
</setHeader>
</when>
</choice>
</route>
有人能帮我吗?
1条答案
按热度按时间vyswwuz21#
用Java-DSL测试了这个问题,看起来调用pollEnrich要么清除标头,要么用新的标头替换消息。请改用setProperty的exchange属性,并改用
${exchangeProperty.FileNamePDF}
引用它。