Amazon SQS消息和"找不到转换器来转换SimpleDataType ..."

时间:2014-11-30 23:21:21

标签: mule mule-studio mule-el mule-component

我使用非常简单的流程,我尝试在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:&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内部流量变量本身(通过MEL)。如果没有,我们如何处理该方案。我尝试了多种方案,但它无法正常工作。

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

1 个答案:

答案 0 :(得分:1)

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

例如,使用mel:

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

相当于

Map<String, Object>

我希望能提供帮助;