Так что я подозреваю, что предыдущий узел ввода или ваш код в этом отношении указали синтаксический анализатор BLOB, а не анализатор JSON. Кстати, если вы не указали имя анализатора, BLOB-анализатор используется по умолчанию.
Подающая часть BLOB
7b224865616422203a207b22536f7572636553797374656d223a224d565844445441505244222c2022546172676574223a2241677265656d656e74222c20
В преобразователь Hex в ASCII https://www.rapidtables.com/convert/number/hex-to-ascii.html и вы получите
{"Head" : {"SourceSystem":"MVXDDTAPRD", "Target":"Agreement",
Что, по сути, говорит о том, что ваше сообщение не было проанализировано.
Я включил пару снимков экрана для узла HTTPInput, вы обычно найдете вкладку «Синтаксический анализ сообщений ввода / вывода» в редакторе свойств узлов ввода и вывода.
Как только вы разберетесь с проблемой синтаксического анализатора, вы можете начать обходить дерево ввода и строить дерево вывода. Диаграмма ниже взята из этой ссылки https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac69091_.htm и показывает, как структурировано дерево элементов. Обратите внимание, что в вашем случае узел XML на самом деле будет JSON
Если вы знаете имена, вы можете получить ссылку на элемент с помощью XPath.
MbElement inputRoot = inputMessageAssembly.getMessage().getRootElement();
MbElement srcSys = inputRoot.getFirstElementByPath("/JSON/Data/Head/SourceSystem");
Чтобы сообщить IIB, что выходное сообщение должно быть в формате JSON, вам необходимо указать имя синтаксического анализатора JSON следующим образом.
MbMessage outMessage = new MbMessage();
MbElement outRoot = outMessage.getRootElement();
MbElement outBody = outRoot.createElementAsLastChild(MbJSON.PARSER_NAME);
Последняя, но не менее важная строка вашего кода теперь может отображать пустую строку или ноль, так как элемент, по которому вы перемещаетесь, не имеет значения, кроме имени.
Ссылка:
Поиск по MbElement дает вам https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.plugin.doc/com/ibm/broker/plugin/MbElement.html
Поиск примеров кода Java MbElement предоставит вам эту ссылку, которая показывает, как использовать класс MbElement. https://www.programcreek.com/java-api-examples/?api=com.ibm.broker.plugin.MbElement
Если вы хотите увидеть структуру деревьев элементов, есть несколько $ {Root} $ {Environment} $ {LocalEnvironment} $ {ExceptionList}, затем добавьте узлы Trace. Вы можете поместить их почти везде, где захотите. Скриншоты ниже взяты из другого ответа, но хорошо иллюстрируют их использование. Имейте в виду, что выходной файл остается открытым узлом Trace, самый простой способ очистить буферы - остановить и перезапустить поток, повторное развертывание также работает.