我使用非常简单的流程,我尝试在flowVars中设置消息属性(对于SQS),以便它将反映在我的SQS队列中。我使用此链接https://github.com/mulesoft/sqs-connector/blob/master/src/test/resources/automation-test-flows.xml作为参考(在他们使用流量变量引用的链接中)。但我得到的错误就像
"Could not find a transformer to transform "SimpleDataType{type=java.lang.String,mimeType='*/*'}" to "SimpleDataType{type=java.util.Map, mimeType='*/*'}". (org.mule.api.transformer.TransformerException)"
Pleasse找到我的配置xml
<flow name="sqsFlow1" doc:name="sqsFlow1">
<sqs:receive-messages config-ref="Amazon_SQS" doc:name="Amazon SQS (Streaming)" numberOfMessages="5" visibilityTimeout="11"/>
<set-variable variableName="setMessageAtt" value="[name:"John"]" doc:name="Variable"/>
sqs:send-message config-ref="Amazon_SQS1" doc:name="Amazon SQS" >
<sqs:message-attributes ref="#[flowVars.setMessageAtt]"/>
</sqs:send-message>
</flow>
我理解我尝试作为String
返回的值,但它期待Map
。有没有办法我们可以将字符串vaue更改为Map内部流量变量本身(通过MEL)。如果没有,我们如何处理该方案。我尝试了多种方案,但它无法正常工作。
需要您的帮助。 提前致谢。
答案 0 :(得分:1)
在mule中,您可以将地图表示为:#[key1 : value1, key2 : value2, . . .]
例如,使用mel:
#[['title':'value','description':'value','status':'404','bit': false]]
相当于
Map<String, Object>
我希望能提供帮助;