我已经实现了端点,它接收多个参数作为查询
i.e: /flights?flight=AB,100,12FEB18&flight=CD,200,13FEB18&flight=...&...
在驼峰中我想分开每个飞行参数并单独处理它,所以我有:
.split(header("flight"))
<案例1
Query: /flights?flight=AB,100,24FEB18&flight=AB,200,25FEB18
分裂成:
1)AB,100,24FEB18
2)AB,200,25FEB18
结果:正确
<案例2Query: /flights?flight=AB&flight=AB,100&flight=AB,200,26FEB18
分裂成:
1)AB
2)AB,100
3)AB,200,26FEB18
结果:正确
<案例3Query: /flights?flight=AB,400,28FEB18
分裂成:
1)AB
2)400
3)28FEB18
结果:不正确
预期:
1)AB,400,28FEB18
为什么一个标题的拆分器工作方式不同,我该如何解决?
答案 0 :(得分:0)
嗯,我猜Camel对你的用例来说“太聪明了”,因此你会得到不同的行为。
案例1和2是列表。 flight
参数列表和每个参数都包含逗号分隔值列表。
案例3是一个简单列表。单个flight
参数,包含逗号分隔值列表。
由于分割器想要分割内容,它需要案例3中的“内部”列表,而案例1和2中的“外部”列表。
要解决这个问题,您可以尝试以下几点:
-
而不是,
),以便Camel不认为您的flight
参数包含案例3中的列表。flight
参数,该参数为空或包含虚拟值,以便始终具有“外部”列表。
如果您无法控制URI参数,则可以使用bean来应用前两个建议之一。