Wednesday, March 8, 2017

Class mediator code segment to retrieve JSONPayload from the Input Stream in WSO2 ESB 4.8.1

The below code segment can be used to retrieve the JSON Payload from the Input stream.

package com.custom.retrievejson;

import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;

import org.apache.commons.io.IOUtils;
import org.apache.synapse.MessageContext;
import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.mediators.AbstractMediator;

public class CustomRetrieveJson extends AbstractMediator {

 public boolean mediate(MessageContext context) {
  // TODO Implement your mediation logic here

  InputStream jsonPaylodStream = (InputStream) ((Axis2MessageContext) context)
    .getAxis2MessageContext().getProperty(
      "org.apache.synapse.commons.json.JsonInputStream");

  StringWriter writer = new StringWriter();
  String originalPayload;
  try {
   IOUtils.copy(jsonPaylodStream, writer);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  originalPayload = writer.toString();
  log.info("jsonPaylodString afetr writer" + originalPayload);

  return true;
 }
}


No comments:

Post a Comment