def Message processData(Message message) {
//Body
def body = message.getBody();
// message.setBody(body + " Body is modified");
//Headers
// def headers = message.getHeaders();
// def value = headers.get("oldHeader");
// message.setHeader("oldHeader", value + " modified");
// message.setHeader("newHeader", "newHeader");
// //Properties
// def properties = message.getProperties();
// value = properties.get("oldProperty");
// message.setProperty("oldProperty", value + " modified");
// message.setProperty("newProperty", "newProperty");
byte[] bytes = new byte[0];
bytes = new byte[body.available()];
body.read(bytes);
def str = new String(bytes);
// body.close();
// message.setBody(str);
def messageLog = messageLogFactory.getMessageLog(message);
if(messageLog != null)
{
messageLog.addAttachmentAsString("Log current Payload:", str, "text/plain");
}
return message;
}
此时body是Camel中的org.apache.camel.converter.stream.InputStreamCache类,
在脚本中可以直接打印出Message的headers , properties, body
其实可以直接转换message.getBody(java.lang.String);