Как показать на консоли XML http-ответ или любое из его значений - PullRequest
0 голосов
/ 13 марта 2019

У меня есть приложение потокового процессора WSO2, которое отправляет http-запрос и получает http-ответ:

@sink(type='http-request', sink.id='sinkid',  publisher.url='http://xxx.xx.xxx.xxx', @map(type='xml', @payload('{{payloadBody}}')))
define stream SomeStream (payloadBody String, method string, headers string);

@source(type='http-response', sink.id='sinkid', http.status.code='200', 
@map(type='xml', @attributes(parval='parval')))
define stream responseSomeStream(parval string);

Как мне извлечь какие-либо данные на консоль? Я пробовал несколько способов, но ни один не помог.

Что я получаю на консоли после отправки полезной нагрузки:

{org.wso2.extension.siddhi.map.xml.sourcemapper.XmlSourceMapper} - Xpath: 'parval did not yield any results. Hence dropping the event : <resp action="read" units="S" user="TheUser" password="xxxxxxx" error="0"><val nodetype="16" node="2" display="u09 S5 Temp." name="u09 S5 Temp." stat="Online" statcode="2" error="0" pending="false" parval="-26.0" units="degc" units_index="4"> -26.0°C</val></resp> (Encoded)

Я хотел бы извлечь некоторые параметры из этого XML-ответа, такие как statcode, parval или unit.

1 Ответ

0 голосов
/ 14 марта 2019

Проблема связана с предоставленным мэппингом, и, поскольку мэппинг неверен, мэппер отбрасывает входящее событие.Внутри раздела @map annotation @attribute вы должны предоставить правильные сопоставления xpath для извлечения необходимых атрибутов. Пожалуйста, обратитесь к этим тестам, где он выполняет настраиваемые сопоставления с выражениями xpath.

...