0

我正在使用非常简单的流程,我尝试在 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)"

请找到我的配置 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:&quot;John&quot;]" 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 inside flow 变量本身(通过 MEL)。如果没有,我们如何处理这种情况。我尝试了多种方案,但它不起作用。

需要您的帮助。提前致谢。

4

1 回答 1

1

在 mule 中,您可以将 Map 表示为:#[key1 : value1, key2 : value2, . . .]

例如,使用 mel:

#[['title':'value','description':'value','status':'404','bit': false]]

相当于

Map<String, Object>

我希望有所帮助;

于 2014-12-01T02:44:02.963 回答