如何在 mulesoft 中获取有关 dataweave 异常的更多信息
Posted
技术标签:
【中文标题】如何在 mulesoft 中获取有关 dataweave 异常的更多信息【英文标题】:How to get more information about dataweave exception in muleosft 【发布时间】:2017-03-19 15:38:36 【问题描述】:我在执行 mule 流时遇到 dataweave 异常:
"
INFO 2016-11-06 09:02:42,097 [[abc].HTTP_Listener_Configuration.worker.01] com.mulesoft.weave.mule.utils.MuleWeaveFactory$: MimeType was not resolved '*/*' delegating to Java.
ERROR 2016-11-06 09:02:42,290 [[abc].HTTP_Listener_Configuration.worker.01] org.mule.exception.CatchMessagingExceptionStrategy:
Message : Exception while executing:
"Response":
^
Unexpected character '\u000a' at index 25 (line 2, position 24), expected '"'
Payload : test
Payload Type : java.lang.String
Element : /Process11/processors/9/1/9 @ abc:def.xml:331 (TM_F1)
Element XML : <dw:transform-message doc:name="TM_F1">
<dw:set-payload>%dw 1.0%output application/json---Data: [// in_id : flowVars.instanceId,pd: 'AmIds:[AmId:' ++ flowVars.AmId ++ ']']</dw:set-payload>
</dw:transform-message>
Root Exception stack trace:
com.mulesoft.weave.reader.json.JsonReaderException: Unexpected character '\u000a' at index 25 (line 2, position 24), expected '"'
at com.mulesoft.weave.reader.json.JsonTokenizer.fail(JsonTokenizer.scala:193)
at com.mulesoft.weave.reader.json.JsonTokenizer.require(JsonTokenizer.scala:190)
at com.mulesoft.weave.reader.json.JsonTokenizer.readString(JsonTokenizer.scala:80)
"
是否有可能启用更多调试选项以获取有关此特定异常的更多信息,以便轻松找出根本原因。
这里的问题是,即使我没有在转换消息中使用有效负载,但由于之前在 muleflow 中的 http 调用返回的有效负载,我得到了错误。
Mule 版本是:studio 6.1 和 runtime 3.8。
请帮我解决这个问题。
谢谢 sdg
【问题讨论】:
请为 dataweave 分享您的输出负载部分。错误消息表明 dataweave 需要双引号 ' " ' 的地方有换行符 【参考方案1】:这不是数据编织问题。您所拥有的异常来自 JsonReaderException:
com.mulesoft.weave.reader.json.JsonReaderException: Unexpected character '\u000a' at index 25 (line 2, position 24), expected '"'
这意味着您提供的 JSON 具有新行 (\u000a) 吃了第 2 行位置 24。我想它是这样的:
"Response":
"Message" : "67890123
456 the end"
在 JSON 中使用特殊字符表示新行。
"Response":
"Message" : "67890123\n456 the end"
【讨论】:
感谢大家的回复。问题在于我在消息丰富器中使用过的转换消息组件......我自己已经解决了......但我想知道如何调试在开发 mule 流时遇到的任何异常......【参考方案2】:在 log4j 中启用信息日志,并在 cloudhub 中启用调试日志(如果它是云端部署)。
请尝试验证 json 以及
【讨论】:
【参考方案3】:调试是找出这类错误的最佳选择。您也可以使用 dataweave 的记录器功能在控制台上记录特定值并查看该值有什么问题。
【讨论】:
以上是关于如何在 mulesoft 中获取有关 dataweave 异常的更多信息的主要内容,如果未能解决你的问题,请参考以下文章
使用 Anypoint 访问管理 - Mulesoft API
如何在 MuleSoft 中将分支合并为 master(Anypoint 设计中心)
FindFirstFileW 问题 - 如何将“LPWIN32_FIND_DATA *”转换为“LPWIN32_FIND_DATAW”