2017-02-03 19 views
0

Я написал пользовательский модуль Axis, чтобы вынюхивать все сообщения в моем WSO2 ESB. Я зарегистрировал его на всех этапах - все работает так, как ожидалось, когда речь заходит об обмене SOAP.WSO2 ESB Custom Axis Module JSON Полезная нагрузка в MessageContext

Однако я не могу получить полезную нагрузку JSON API-интерфейса REST, определенного и вызываемого в WSO2 ESB. MessageContext.getEnvelope возвращает пустое тело, даже если я вижу полезную нагрузку JSON, возвращаемую моим клиентом REST.

В основном мой код выглядит следующим образом:

public InvocationResponse invoke(MessageContext msgContext) throws AxisFault { 
      String logId = msgContext.getLogCorrelationID(); 
      long currentTimestamp = System.currentTimeMillis(); 

      logEntry.setId(logId); 

      if(msgContext.isDoingREST()) { 
       logEntry.setFormat(ILogEntry.FORMAT_REST); 
       logEntry.setPayload(String.valueOf(msgContext.getEnvelope())); 
      } else if(msgContext.isDoingMTOM()) { 
       logEntry.setFormat(ILogEntry.FORMAT_MTOM); 
      } else if(msgContext.isDoingSwA()) { 
       logEntry.setFormat(ILogEntry.FORMAT_SWA); 
      } else { 
       logEntry.setFormat(ILogEntry.FORMAT_SOAP); 
       JSONObject json = XML.toJSONObject(String.valueOf(msgContext.getEnvelope())); 
       logEntry.setPayload(String.valueOf(json)); 
      } 
    } 

удалось ли полезной нагрузки JSON в org.apache.axis2.context.MessageContext в иной форме, чем SOAP?

Как его получить?

Питер

ответ

0

Похоже you're сталкиваются с той же проблемой, как описано здесь.

Will JSON based REST - ESB - REST communication build AXIS 2 XML MessageContext

+0

Hi - спасибо, что ответили. Я изучил это, прежде чем публиковать этот вопрос. Я получаю NULL при попытке решить getProperty («JSON_STREAM»). Я также наткнулся на сообщение, в котором упоминается «JSON_STRING» как свойство, на которое нужно смотреть, но это не делало этого ... :( –

+0

Может быть, следующее помогает, но я не уверен. // Получение полезной нагрузки json в строку String jsonPayloadToString = JsonUtil.jsonPayloadToString ((Axis2MessageContext)) .getAxis2MessageContext()); // Сделать объект json JSONObject jsonBody = новый JSONObject (jsonPayloadToString); –