2012-05-24 34 views
1

我想添加一些額外的信息關於包含POJO,我已經使用騾子信息豐富和做到這一點,這裏是我的全部流量。我正在使用子流來獲取有效負載,並選擇在數據庫中的一些值,並在相同的pojo中設置該值,並返回,而在目標我設置爲有效載荷,但我得到像這樣的錯誤「表達式恩裏克爾」有效載荷「未註冊與騾子。「MULE ENRICH隨着輸入POJO

這裏畝流

<enricher doc:name="Message Enricher"> 
     <core:flow-ref name="flows1Flow1" doc:name="Flow Reference"/> 
     <enrich source="#[groovy:payload]" target="#[payload]"/>    

<logger message="AFTER Enrich: #[payload]" level="INFO" doc:name="Logger"/> 
    <component class="com.enrich.AfterEnricher" doc:name="Java"/> 


<sub-flow name="flows1Flow1" doc:name="flows1Flow1"> 
    <component class="com.enrich.MessageEnrichPattern" doc:name="Java"/> 
    <jdbc:outbound-endpoint exchange-pattern="request-response" queryKey="selectData" connector-ref="jdbcConnector" doc:name="Database (JDBC)"> 
     <jdbc:query key="selectData" value="SELECT Username, Password, ModuleId from Credentials where ModuleId=#[map-payload:moduleId]"/> 
    </jdbc:outbound-endpoint> 
    <logger message="#[payload]" level="INFO" doc:name="Logger"/> 
    <component class="com.enrich.ReceiveMessageEnrichPattern" doc:name="Java"/> 
</sub-flow> 

這裏ReceiveMessageEnrichPattern returing

Credential credential = new Credential(); 
    credential.setUname(hashMap.get("USERNAME").toString()); 
    credential.setPwd(hashMap.get("PPPP").toString()); 
    credential.setMid(hashMap.get("MODULEID").toString()); 
    return credential; 

但在後豐富組件我收到異常。請幫助我如何可以補充我的傳入pojo與額外的信息可以添加。

回答

2

按照docs,騾目前只支持富集兩個目標:

  • 流變量,
  • 郵件頭。

要實現你的目標,你需要:

  • 店富集結果(Credential對象)的流量變量,
  • 使用自定義變壓器中的值中找到的憑據對象複製主流中POJO負載的流量變量。