Saya menggunakan komponen properti pesan di bagal. Saya perlu menetapkan nama kunci dinamis karena ini digunakan untuk menambahkan tajuk khusus ke permintaan http.

<message-properties-transformer doc:name="Message Properties" scope="session">
    <add-message-property key="#[flowVars.name]" value="#[payload.split(&quot;:&quot;)[1]]"/>
</message-properties-transformer>

Saat mencatat output, ini menunjukkan bahwa kunci belum mengevaluasi ekspresi MEL yang terkandung di dalamnya:

SESSION scoped properties: #[flowVars.name]=Basic pokpogytg788t878

Apakah ada cara untuk menetapkan nama kunci dinamis untuk properti di komponen ini?

0
Jack Zach Tibbles 12 November 2017, 17:52

1 menjawab

Jawaban Terbaik

Saya telah menghadapi situasi serupa, di mana saya harus mengatur properti pesan dinamis. Saya mencoba beberapa hal untuk menyetelnya dengan message-properties-transformer , tetapi tidak berhasil.

Ada beberapa bug yang diajukan untuk masalah serupa, di bawah ini tautannya

Tidak dapat menggunakan ekspresi MEL sebagai kunci dalam transformator Properti Pesan

Setelah mencoba selama beberapa waktu, saya berhasil dengan beberapa solusi.

Anda dapat mencoba mengatasinya dengan Komponen ekspresi.

        <expression-component doc:name="Expression">
        <![CDATA[message.outboundProperties[flowVars.name]=payload.split(':')1];]]>
        </expression-component>

Anda tidak hanya dapat membaca nilai dinamis dari payload/variabel. Tetapi Anda juga dapat memanggil metode java/groovy kustom Anda di dalamnya.

Coba cuplikan kode di bawah ini, dan beri tahu kami jika itu berhasil untuk Anda.

    <flow name="testFlow">
        <http:listener config-ref="HTTP_Listener_Configuration"
            path="/test" doc:name="HTTP" allowedMethods="POST" />
        <set-variable variableName="name" value="#[&quot;test&quot;]"
            doc:name="name" />
        <expression-component doc:name="Expression">
        <![CDATA[message.outboundProperties[flowVars.name]=payload.split(':')1];]]>
        </expression-component>
    </flow>
1
Mahesh_Loya 13 November 2017, 08:35