【问题标题】:How to get more information about dataweave exception in muleosft如何在 mulesoft 中获取有关 dataweave 异常的更多信息
【发布时间】: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 需要双引号 ' " ' 的地方有换行符

标签: mule mule-studio 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 的记录器功能在控制台上记录特定值并查看该值有什么问题。

    【讨论】:

      猜你喜欢
      • 2017-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 2020-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多