2014-12-04 78 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中。