首页 > 解决方案 > Mule 将数组之一展平,其中一个数组为空

问题描述

我正在学习 mule4,在尝试分散收集时,我遇到了一个问题。

分散收集任务中有 3 个流,其中 2 个流返回带有数据的有效负载,但第 3 个流返回空负载。

因此,当我试图展平这 3 个结果时,我遇到了空指针问题。我无法解决这个问题。有人可以帮忙吗?

我的数据编织表达式如下

%dw 2.0
output application/java
---
flatten(payload..payload) 

日志

ERROR 2018-10-27 07:10:00,249 [[MuleRuntime].cpuLight.06: [apdev-flights-ws].getAllFlightsFlow.CPU_LITE @5abc6c4c] [event: ] org.mule.runtime.core.internal.exception.OnErrorPropagateHandler: 
********************************************************************************
Message               : "Unexpected end-of-input at payload@[1:1] (line:column), expected false or true or null or {...} or [...] or number but was , while reading `payload`as Json.

1| 
   ^" evaluating expression: "%dw 2.0
output application/java
---
flatten(payload..payload) ".
Error type            : MULE:EXPRESSION
Element               : getAllFlightsFlow/processors/2 @ apdev-flights-ws:implementation.xml:102 (Flatten)
Element XML           : <ee:transform doc:name="Flatten" doc:id="46245fd1-5ebd-4b16-b83e-31ea4dbb53e8">
<ee:message>
<ee:set-payload>%dw 2.0
output application/java
---
flatten(payload..payload)</ee:set-payload>
</ee:message>
</ee:transform>

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

INFO  2018-10-27 07:10:00,323 [[MuleRuntime].cpuLight.06: [apdev-flights-ws].getAllFlightsFlow.CPU_LITE @5abc6c4c] [event: ] org.mule.runtime.core.internal.context.notification.Policy: NotificationListener com.mulesoft.mule.debugger.server.DebuggerPipelineMessageNotificationListener@20d9c50f was unable to fire notification PipelineMessageNotification{action=pipeline process complete, resourceId=getAllFlightsFlow, serverId=de-PC..apdev-flights-ws, timestamp=1540604400323} due to an exception: java.lang.NullPointerException.

标签: muleflattendataweave

解决方案


我相信是payload..payload电话把你搞砸了。如果你想展平有效载荷,它应该是:

%dw 2.0
output application/java
---    
flatten(payload)

推荐阅读