WebSphere Message Broker, Version 8.0.0.7
Operating Systems: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS
See information about the latest product version
See information about the latest product version
Creating a new message by using a JavaCompute node
Many message transformation scenarios require a new outgoing message to be built. The Create Message Class template in the JavaCompute node wizard generates template code for this.
In the template code, the default constructor
of MbMessage is called to create a blank message, as shown in the
following Java™ code:
MbMessage outMessage = new MbMessage();
The
headers can be copied from the incoming message by using the supplied
utility method, copyMessageHeaders(), as shown in this Java code:copyMessageHeaders(inMessage, outMessage);
The
new message body can now be created. First, add the top level parser
element. For XML, this is: MbElement outRoot = outMessage.getRootElement();
MbElement outBody = outRoot.createElementAsLastChild(MbXMLNSC.PARSER_NAME);
The
remainder of the message can then be built up by using the createElement methods
and the extended syntax of the broker XPath implementation. When
you want to create a BLOB message, that is handled as a single byte
string by using the BLOB parser domain. The message data is added
as a byte array to the single element named "BLOB" under the parser
level element, described as follows:
String myMsg = "The Message Data";
MbElement outRoot = outMessage.getRootElement();
// Create the Broker Blob Parser element
MbElement outParser = outRoot.createElementAsLastChild(MbBLOB.PARSER_NAME);
// Create the BLOB element in the Blob parser domain with the required text
MbElement outBody = outParser.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", myMsg.getBytes());
You can use the following code to create a BLOB message
in a JavaCompute node:
MbElement outMsgRootEl = outMessage.getRootElement();
String parserName = MbBLOB.PARSER_NAME;
String messageType = "";
String messageSet = "";
String messageFormat = "";
int encoding = 0;
int ccsid = 0;
int options = 0;
outMsgRootEl.createElementAsLastChildFromBitstream(responseBodyXmlData,
parserName, messageType, messageSet, messageFormat, encoding, ccsid,
options);
To add a JSON message in a JavaCompute node, see Creating a JSON message.