如何在 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”

如何将依赖项添加到 Mulesoft 设计中心 (IPaSS)

MuleSoft系列 - 初试MuleSoft

如何根据用户限制对 mulesoft API 资源的访问?