我写了一个自定义Axis模块来嗅出我的WSO2 ESB中的所有通信。我在所有阶段都注册了它 - 当涉及到SOAP通信时,一切都按预期工作。
但是,我无法检索在WSO2 ESB中定义和调用的REST API的JSON有效内容。 MessageContext.getEnvelope返回一个空体,即使我可以看到我的REST客户端中返回了一个JSON有效负载。
基本上我的代码如下所示:
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));
}
}
org.apache.axis2.context.MessageContext
内的JSON有效负载是否以与SOAP不同的方式进行管理?
如何找回它?
彼得
答案 0 :(得分:0)