SiddhiQL 中的语法错误,输入“@sink”没有可行的替代方案
Syntax error in SiddhiQL, no viable alternative at input '@sink'
我正在尝试根据示例 here.
在 Siddhi 中使用 http-request(源)和 http-response(sink)发送同步请求
我有一个 API,我可以使用 curl 命令访问它。这是我的 curl 命令和输出。
curl http://localhost/parser/ -d '{"q":"test input", "project":"sample_project","model":"sample_model"}'
{
"intent": {
"name": "Cat A",
"confidence": 0.7
},
"entities": [],
"intent_ranking": [
{
"name": "Cat A",
"confidence": 0.7
},
{
"name": "Cat B",
"confidence": 0.6
},
{
"name": "Cat C",
"confidence": 0.01
],
"text": "test input",
"project": "sample_project",
"model": "sample_model"
}
我正在尝试使用 Siddhi 做类似的事情。
这是我的代码。
@source(type='http-request', source.id='StreamSource', receiver.url='http://localhost/parser', connection.timeout='150000', @map(type='json', @attributes(messageId='trp:messageId')))
define stream SourceStream (messageId string, text string, project string, model string);
@sink(type='http-response', source.id='StreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define stream SinkStream (messageId string, results String);
我在@sink 行中遇到的错误是:
Syntax error in SiddhiQL, no viable alternative at input ';\r\n\r\n@sink(type='http-response', source.id='StockStreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define'. no viable alternative at input ';\r\n\r\n@sink(type='http-response', source.id='StockStreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define'
我在这里遗漏了什么吗?
您的接收器定义末尾缺少括号。下面是固定的定义
@sink(type='http-response', source.id='StreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')))
define stream SinkStream (messageId string, results String);
此后您还会遇到问题,因为您在输入映射中只映射了 messagedID 属性。即
@map(type='json', @attributes(messageId='trp:messageId'))
请将其他属性也映射到那里。
我正在尝试根据示例 here.
在 Siddhi 中使用 http-request(源)和 http-response(sink)发送同步请求我有一个 API,我可以使用 curl 命令访问它。这是我的 curl 命令和输出。
curl http://localhost/parser/ -d '{"q":"test input", "project":"sample_project","model":"sample_model"}'
{
"intent": {
"name": "Cat A",
"confidence": 0.7
},
"entities": [],
"intent_ranking": [
{
"name": "Cat A",
"confidence": 0.7
},
{
"name": "Cat B",
"confidence": 0.6
},
{
"name": "Cat C",
"confidence": 0.01
],
"text": "test input",
"project": "sample_project",
"model": "sample_model"
}
我正在尝试使用 Siddhi 做类似的事情。
这是我的代码。
@source(type='http-request', source.id='StreamSource', receiver.url='http://localhost/parser', connection.timeout='150000', @map(type='json', @attributes(messageId='trp:messageId')))
define stream SourceStream (messageId string, text string, project string, model string);
@sink(type='http-response', source.id='StreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define stream SinkStream (messageId string, results String);
我在@sink 行中遇到的错误是:
Syntax error in SiddhiQL, no viable alternative at input ';\r\n\r\n@sink(type='http-response', source.id='StockStreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define'. no viable alternative at input ';\r\n\r\n@sink(type='http-response', source.id='StockStreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')) define'
我在这里遗漏了什么吗?
您的接收器定义末尾缺少括号。下面是固定的定义
@sink(type='http-response', source.id='StreamSource', message.id='{{messageId}}', @map(type='json', @payload('{{results}}')))
define stream SinkStream (messageId string, results String);
此后您还会遇到问题,因为您在输入映射中只映射了 messagedID 属性。即
@map(type='json', @attributes(messageId='trp:messageId'))
请将其他属性也映射到那里。