Camel 使用旧头后使用pollEnrich

mspsb9vt  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(146)

我的目标是阅读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&amp;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>

有人能帮我吗?

vyswwuz2

vyswwuz21#

用Java-DSL测试了这个问题,看起来调用pollEnrich要么清除标头,要么用新的标头替换消息。请改用setProperty的exchange属性,并改用${exchangeProperty.FileNamePDF}引用它。

相关问题