在ActiveMQ Artemis 2.10.0中是否有办法通过部分"文本"来过滤消息?字段使用管理控制台?我使用方法"browse(java.lang.String)"并尝试通过以下表达式过滤我的消息(示例如下):
text LIKE '%777-555-333-111%'
消息的例子:
{
"address": "ADDRESS.EXAMPLE",
"ShortProperties": {},
"messageID": "11111",
"priority": 4,
"type": 3,
"redelivered": false,
"ByteProperties": {
"_AMQ_ROUTING_TYPE": 1
},
"IntProperties": {
"CamelHttpResponseCode": 200
},
"durable": true,
"StringProperties": {
"Server": "nginx/1.19.5",
"CamelHttpCharacterEncoding": "UTF-8",
"Content_HYPHEN_Type": "application/xop+xml",
"connection": "keep-alive"
},
"DoubleProperties": {},
"expiration": 0,
"text": "<?xml version="1.0" encoding="UTF-8" standalone="yes"?><processId>777-555-333-111</processId></error>",
"BooleanProperties": {},
"FloatProperties": {}
}
然而,它没有给我任何结果。如果可能的话,请给我一个提示,我将不胜感激。
browse
管理操作使用的过滤器(以及JMS消费者等使用的过滤器)仅适用于消息标题和属性。您不能通过正文中的文本来过滤消息。
您粘贴的数据只是在过滤器已经应用之后发送到客户端的序列化消息数据。
Apache ActiveMQ Artemis还支持特殊的XPath过滤器消息的正文。正文必须是XML,详细信息请参见文档。
要使用XPath过滤器,请使用以下语法:
XPATH '<xpath-expression>'