2014-12-04 75 views
0

我有以下Mule ESB流。它的目的是读取XML,映射它,然后通过HTTP post将一组字段提交给API。Mule ESB XML映射到HTTP Post

我收到没有数据发布到API和此错误消息。我相信我的问题是无法正确设置输出属性,例如此区域的输出属性。

org.mule.transformer.simple.MessagePropertiesTransformer:带'key'区域的属性,使用'#[message.outboundProperties ['area']]'在消息中找不到。由于该值被标记为可选,什么也没有对消息该物业

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns:data-mapper="http://www.mulesoft.org/schema/mule/ee/data-mapper" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.5.2" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd 
http://www.mulesoft.org/schema/mule/ee/data-mapper http://www.mulesoft.org/schema/mule/ee/data-mapper/current/mule-data-mapper.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd"> 
    <data-mapper:config name="XML_To_XML" transformationGraphPath="xml_to_xml.grf" doc:name="XML_To_XML"/> 
    <flow name="Flow1" doc:name="Flow1"> 
     <file:inbound-endpoint path="/Users/dylan/Documents/Projects/Mulesoft/XMLin" moveToDirectory="/Users/dylan/Documents/Projects/Mulesoft/XMLout" responseTimeout="10000" doc:name="File"/> 
     <data-mapper:transform config-ref="XML_To_XML" doc:name="XML To XML"> 
      <data-mapper:input-arguments> 
      </data-mapper:input-arguments> 
     </data-mapper:transform> 
     <message-properties-transformer doc:name="send-check-api"> 
      <add-message-property key="source_id" value="#[message.outboundProperties['source_id']]"/> 
      <add-message-property key="country" value="#[message.outboundProperties['country']]"/> 
      <add-message-property key="region" value="#[message.outboundProperties['region']]"/> 
      <add-message-property key="area" value="#[message.outboundProperties['area']]"/> 
      <add-message-property key="city" value="#[message.outboundProperties['city']]"/> 
      <add-message-property key="source_agentid" value="#[message.outboundProperties['source_agentid']]"/> 
      <add-message-property key="status" value="#[message.outboundProperties['status']]"/> 
      <add-message-property key="source" value="#[message.outboundProperties['source']]"/> 
     </message-properties-transformer> 
     <set-property propertyName="http.method" value="#[flowVars['send-check-api']]" doc:name="set-post-attributes"/> 
     <logger level="DEBUG" doc:name="Logger"/> 
     <http:outbound-endpoint exchange-pattern="request-response" host="XX.XX.XX.com" port="80" method="POST" doc:name="HTTP" path="v1/property/check"/> 
    </flow> 
</mule> 

回答

0

message-properties-transformers内的出站性质是不可能存在的设置。 IIRC数据映射器的出站属性被转换为流量变量。

这也可以解释整个message-properties-transformer的含义,因为像现在一样,正在将VAR_X复制到VAR_X中。