2015-07-29 2 views
1

Как получить доступ к содержимому полезной нагрузки от пользовательского обработчика в WSO2 APIM? Я попытался получить это из org.apache.synapse.MessageContext или из org.apache.synapse.core.axis2.Axis2MessageContext; но я не могу получить полезную нагрузку. Кто-нибудь может помочь?Как получить доступ к содержимому полезной нагрузки от настраиваемого обработчика в WSO2 APIM 1.9

ответ

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

+0

Это выше RelayUtils не работает, если для ответа используется какой-либо пользовательский тип гипермедиа, например, application/vnd.hal + json или application/vnd.siren + json. В противном случае он работает с приложением/json. –