如何将 String 解析为 MbMessageAssembly?在Java计算节点IIB

How to parse String to MbMessageAssembly? In Java Compute node IIB

我对此很陌生,我正在为一个问题而苦苦挣扎。 在 Java Compute Node 中,通过 IIB,我正在检查一个字段是否具有一个或多个值,并且对于每个附加值,我正在创建一个新的重复消息,除了值,这些附加值将被覆盖。 正如预期的那样工作正常,请参见示例:

输入:...

</leg_flight_no><lineNumber>2</lineNumber><shipper_name>BMW AG</shipper_name> <shipper_reference_hu>1111111;22222222;333333333</shipper_reference_hu></root>

修改后的消息 1:...

</leg_flight_no><lineNumber>2</lineNumber><shipper_name>BMW AG</shipper_name> <shipper_reference_hu>1111111</shipper_reference_hu></root>

修改消息 2:..

</leg_flight_no><lineNumber>2</lineNumber><shipper_name>BMW AG</shipper_name> <shipper_reference_hu>22222222</shipper_reference_hu></root>

修改后的消息 3 :...

</leg_flight_no><lineNumber>2</lineNumber><shipper_name>BMW AG</shipper_name> <shipper_reference_hu>333333333</shipper_reference_hu></root>

但我正在努力将此消息从 Java 计算节点传播出去。我知道我无法传播 String 类型的消息,因此我试图将其解析为 MbMessageAssemble outAssemble。这是我的代码:

String newMessage = inData.replace(wholeValues, outData); // replace one value with another
                                
MbMessage outMessage = new MbMessage();
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
copyMessageHeaders(inMessage, outMessage);
MbElement outRoot = outMessage.getRootElement();
MbElement outParser = outRoot.createElementAsLastChild(MbBLOB.PARSER_NAME);
MbElement outBodyEl2 = outParser.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", newMessage.getBytes());                                
alt.propagate(outAssembly);

但这是传播空消息,因此 newMessage 未解析为 outAssembly。任何有这种经验的人都可以帮助我吗?

我明白了。为了未来,这里是你的答案

String newMessage = "this is some test";
MbMessage outMessage=new MbMessage();
outMessage.getRootElement().createElementAsLastChild(MbBLOB.PARSER_NAME).createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", newMessage.getBytes());
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
out.propagate(outAssembly);