无法在Siddhi中使用'regex'http.status.code处理响应

时间:2019-12-19 09:19:07

标签: siddhi

对于响应500,无法使用响应:

@source(type='http-response', sink.id = 'serviceActivate', http.status.code = '5\d+', @map(type = 'json', @attributes(result = '$.result')))

@source(type='http-response', sink.id = 'serviceActivate', http.status.code = '[2|4|5]00', @map(type = 'json', @attributes(result = '$.result')))

我看到一个错误:

[2019-12-19 11:35:06,221] ERROR {org.wso2.extension.siddhi.io.http.source.HttpResponseMessageListener} - No source of type 'http-response' for status code '500' has been defined. Hence dropping the response message.

对于连续的多个源,而不使用正则表达式,没有错误:

@source(.... http.status.code = '200',.....)
@source(.... http.status.code = '400',.....)
@source(.... http.status.code = '500',.....)

如何正确编写regexp?

2 个答案:

答案 0 :(得分:0)

这似乎归因于bug,WSO2 SP 4.4.0基于Siddhi核心4x,目前未处于积极开发中。我使用最新的Siddhi Distribution 5.1.2测试了以上内容,无法重现。 查看有关siddhi 5x开发here的更多详细信息。

答案 1 :(得分:0)

请尝试将正则表达式分别用于200和400范围为“ 2 **”和“ 4 **”的状态。