Как получить доступ к содержимому полезной нагрузки от пользовательского обработчика в WSO2 APIM? Я попытался получить это из org.apache.synapse.MessageContext или из org.apache.synapse.core.axis2.Axis2MessageContext; но я не могу получить полезную нагрузку. Кто-нибудь может помочь?Как получить доступ к содержимому полезной нагрузки от настраиваемого обработчика в WSO2 APIM 1.9
1
A
ответ
1
Перед чтением полезной нагрузки необходимо создать сообщение внутри обработчика, как показано ниже.
public boolean handleResponse(MessageContext messageContext) {
try {
RelayUtils.buildMessage(((Axis2MessageContext) messageContext).getAxis2MessageContext());
} catch (IOException e) {
e.printStackTrace();
} catch (XMLStreamException e) {
e.printStackTrace();
}
// read the body
log.info(messageContext.getEnvelope().getBody());
return true;
}
Обратитесь к [1] за полным образцом для создания сообщения внутри обработчика для API Manager 1.8.0. Вы должны поставить правильные зависимости в pom.xml для API диспетчера 1.9.0 (обновление как синапсы-жильный & синапса nhttp-транспортную версию 2.1.2-wso2v7)
[1] https://github.com/R-Rajkumar/samples/tree/master/message-builder-handler
Это выше RelayUtils не работает, если для ответа используется какой-либо пользовательский тип гипермедиа, например, application/vnd.hal + json или application/vnd.siren + json. В противном случае он работает с приложением/json. –