Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 使用Spring表达式语言(SpEL)访问嵌套头_Apache Camel_Spring El - Fatal编程技术网

Apache camel 使用Spring表达式语言(SpEL)访问嵌套头

Apache camel 使用Spring表达式语言(SpEL)访问嵌套头,apache-camel,spring-el,Apache Camel,Spring El,我的驼峰路由需要从入站exchange对象访问kafka.HEADERS。其中一个头是进一步的头列表,其中值类型为RecordHeader。我想访问其中一个RecordHeader(例如leadEquipmentId),并将其与字符串进行比较。有人能建议怎么做吗?此语法不起作用: <spel>#{#{request.headers['kafka.HEADERS']}['leadEquipmentId']} == 'SomeEquipmentId'</spel> {{re

我的驼峰路由需要从入站exchange对象访问kafka.HEADERS。其中一个头是进一步的头列表,其中值类型为RecordHeader。我想访问其中一个RecordHeader(例如leadEquipmentId),并将其与字符串进行比较。有人能建议怎么做吗?此语法不起作用:

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

记录头
不是
映射
,因此您不能使用
映射访问器
['leadEquipmentId']

试一试


实际上,这将返回
记录头
,您需要它的
值()
请参见编辑。我在您的第一次指导后制定了解决方案,并提出了要使用的.value()。在发布我制定的解决方案时,我发现您也提出了相同的建议
{request.headers['kafka.headers'].lastHeader('leadEquipmentId').value()}='SomeEquipmentId'
对于可能在某个时间点引用它的人来说,语法有轻微的更新。{code>{new String(request.headers['kafka.headers'].lastHeader('leadEquipmentId').value())='SomeEquipmentId'},也就是说,大括号的位置应覆盖要计算的整个表达式。
#{new String(request.headers['kafka.HEADERS'].lastHeader('leadEquipmentId').value())} == 'SomeEquipmentId'