第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用JAVA訪問IIB中的消息內(nèi)容

使用JAVA訪問IIB中的消息內(nèi)容

墨色風(fēng)雨 2022-11-30 16:55:13
有誰知道如何在 Java 計(jì)算節(jié)點(diǎn)中訪問 MbMessage 的內(nèi)容?我正在使用 IBM integration Toolkit 10,到目前為止我只知道 Message 由一個帶有各種子元素的根元素組成。我從 MQ 接收 JSON 文本,我只需要在計(jì)算節(jié)點(diǎn)中訪問它,修改它并將它發(fā)送到 Azure 服務(wù)總線,但我很難從消息中訪問 JSON 文本。我試圖訪問各種 MbMessage 元素,但沒有從中獲得任何合理的價(jià)值。我將輸出作為異常放入錯誤日志中。我得到的唯一合理數(shù)據(jù)來自 Chapter 元素,但我猜格式是十六進(jìn)制的??吹竭@個:"7b224865616422203a207b22536f7572636553797374656d223a224d565844445441505244222c2022546172676574223a2241677265656d656e74222c2022416374696f6e223a2264656c657465222c20224d6573736167654964223a22222c2022436f72656c6174696f6e4964223a22222c2254696d657374616d70223a223230313930333230313631383531333636373230303030303030222c20224368616e67654964223a22227d2c224974656d7322203a207b2241677265656d656e744964223a225357453134305f36303736343336222c224d616368696e654b6579223a2231313131303337313333222c2241677265656d656e74436c617373223a22353631222c2241677265656d656e744e756d626572223a2242303638323135222c224c696e654e756d626572223a22315f3330222c22436f6e74726163746564486f757273223a22313030222c2241677265656d656e7456616c696446726f6d223a223230313930333132222c2241677265656d656e7456616c6964546f223a223230323230333131222c224c6173744d6f646966696564223a223230313930333230313631383531333636373230303030303030222c22497349536974654f726967696e61746564223a2230222c22497344656c657"// This is how i see in log what is in the element value of a chapterif(true){    throw new Exception("Message Content: " + outMessage.getRootElement().getLastChild().getLastChild().getValueAsString());}我希望獲得發(fā)送到消息隊(duì)列的 JSON 文本。
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個贊

所以我懷疑前面的輸入節(jié)點(diǎn),或者你的代碼,已經(jīng)指定了 BLOB 解析器而不是 JSON 解析器。順便說一句,如果您沒有提供解析器的名稱,則 BLOB 解析器是默認(rèn)的。

提供 BLOB 的一部分

7b224865616422203a207b22536f7572636553797374656d223a224d565844445441505244222c2022546172676574223a2241677265656d656e74222c20

進(jìn)入十六進(jìn)制到 ASCII 轉(zhuǎn)換器https://www.rapidtables.com/convert/number/hex-to-ascii.html,你得到

 {"Head" : {"SourceSystem":"MVXDDTAPRD", "Target":"Agreement",

這實(shí)質(zhì)上告訴您您的消息尚未被解析。

我提供了幾個 HTTPInput 節(jié)點(diǎn)的屏幕截圖,您通常會在輸入和輸出節(jié)點(diǎn)的屬性編輯器中找到輸入/輸出消息解析選項(xiàng)卡。

http://img1.sycdn.imooc.com//63871ae20001c60706600432.jpg

一旦解決了解析器問題,就可以開始遍歷輸入樹并構(gòu)建輸出樹。下圖來自此鏈接https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.doc/ac69091_.htm并顯示了元素樹的結(jié)構(gòu)。請注意,在您的情況下,XML 節(jié)點(diǎn)實(shí)際上是 JSON

http://img1.sycdn.imooc.com//63871aec0001f1ed06530536.jpg

如果您知道這些名稱,則可以使用 XPath 獲取元素引用。


MbElement inputRoot = inputMessageAssembly.getMessage().getRootElement();

MbElement srcSys = inputRoot.getFirstElementByPath("/JSON/Data/Head/SourceSystem");

要告訴 IIB 輸出消息應(yīng)該是 JSON 格式,您需要像這樣為其提供 JSON 解析器的名稱。


MbMessage outMessage = new MbMessage();

MbElement outRoot = outMessage.getRootElement();

MbElement outBody = outRoot.createElementAsLastChild(MbJSON.PARSER_NAME);

最后但并非最不重要的是,您當(dāng)前的代碼行現(xiàn)在可能會顯示一個空字符串或 null,因?yàn)槟獙?dǎo)航到的元素沒有任何值,只有一個名稱。


參考資料:搜索 MbElement 可獲得https://www.ibm.com/support/knowledgecenter/en/SSMKHH_9.0.0/com.ibm.etools.mft.plugin.doc/com/ibm/broker/plugin/MbElement。網(wǎng)頁格式


搜索 Java 代碼示例 MbElement 將為您提供此鏈接,其中顯示了如何使用 MbElement 類。https://www.programcreek.com/java-api-examples/?api=com.ibm.broker.plugin.MbElement


如果要看元素樹的結(jié)構(gòu),有幾個${Root} ${Environment} ${LocalEnvironment} ${ExceptionList},然后添加Trace節(jié)點(diǎn)。您幾乎可以將它們放在任何您喜歡的地方。下面的屏幕截圖來自另一個答案,但很好地說明了它們的用途。請注意,輸出文件由 Trace 節(jié)點(diǎn)保持打開狀態(tài),刷新緩沖區(qū)的最簡單方法是停止并重新啟動流,重新部署也可以。

http://img1.sycdn.imooc.com//63871afa0001439b06600446.jpg

查看完整回答
反對 回復(fù) 2022-11-30
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號