使用 pollEnrich 后,Camel 使用旧 header

Camel use old header after use pollEnrich

我的目标是读取 2 个文件。 我的逻辑如下: 我读取了第一个文件如果是各种headers强加的txt,之后我通过pollEnrich读取了第二个文件但是我之前设置的headers已经不存在了。 下面是我的代码:

<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>   

有人可以帮助我吗?

用 Java-DSL 对此进行了测试,看起来调用 pollEnrich 会清除 headers 或用新消息替换消息。使用 setProperty 代替交换属性,并用 ${exchangeProperty.FileNamePDF} 代替。