使用 Spring 表达式语言 (SpEL) 访问嵌套的 headers

Accessing nested headers with Spring Expression Language (SpEL)

我的 Camel 路由需要从入站交换 object 访问 kafka.HEADERS headers。其中一个headers又是一个headers的List,其中value的类型是RecordHeader。我想访问 RecordHeader 之一(例如 leadEquipmentId)并将其与字符串进行比较。请问有人可以建议怎么做吗?此语法无效:

<spel>#{#{request.headers['kafka.HEADERS']}['leadEquipmentId']} == 'SomeEquipmentId'</spel>

RecordHeaders 不是 Map 所以你不能使用 MapAccessor (['leadEquipmentId']).

尝试

#{new String(request.headers['kafka.HEADERS'].lastHeader('leadEquipmentId').value())} == 'SomeEquipmentId'