2013-07-12 18 views
0

我正在使用迭代媒體和聚合中介。 我的要求是:Aggregate Mediator出現錯誤?

<p:GetPersonDataOperation xmlns:p="http://tempuri.org"> 
    <!--1 or more occurrences--> 
    <xs:ID xmlns:xs="http://tempuri.org">1</xs:ID> 
</p:GetPersonDataOperation> 

和響應是:

<GetPersonDataCollection xmlns="http://tempuri.org"> 
<GetPersonData> 
    <AppInstanceID>1</AppInstanceID> 
    <RecordID>349</RecordID> 
    <ID>1</ID> 
    <Name>name</Name> 
    <LastName>lastname</LastName> 
    <Descr>description</Descr> 
    <Address>Park Street</Address> 
</GetPersonData> 
</GetPersonDataCollection> 

如果我不使用總調解人然後我得到的上述反應,但如果我用骨料調停我get請求超時異常

我的順序是:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="GetPersonDataOperationSeq"> 
    <iterate xmlns:xs="http://tempuri.org" xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://tempuri.org" preservePayload="true" attachPath="//p:GetPersonData" expression="//p:GetPersonData/xs:ID" id="Iterator1"> 
     <target> 
     <sequence> 
      <property name="ID" expression="//xs:ID" scope="default" type="STRING"/> 
      <payloadFactory> 
       <format> 
        <p:GetPersonData> 
        <xs:ID>$1</xs:ID> 
        </p:GetPersonData> 
       </format> 
       <args> 
        <arg expression="get-property('ID')"/> 
       </args> 
      </payloadFactory> 
      <send receive="AggregatorSeq"> 
       <endpoint key="GetPersonDataEP"/> 
      </send> 
     </sequence> 
     </target> 
    </iterate> 
</sequence> 

,並從上面的順序我正在重定向到被稱爲AggregatorSeq和我AggregatorSeq另一順序是:

<sequence xmlns="http://ws.apache.org/ns/synapse" name="AggregatorSeq"> 
    <log level="custom"> 
     <property name="CamHereProp" value="*******************Yes??????????????**********************************************"/> 
    </log> 
    <aggregate> 
     <completeCondition> 
     <messageCount min="-1" max="-1"/> 
     </completeCondition> 
     <onComplete xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://tempuri.org" expression="//p:GetPersonDataCollection"> 
     <send/> 
     </onComplete> 
    </aggregate> 
</sequence> 

我在做提前wrong.Looking着您answers.Thanks

回答

0

你能指定什麼您提供的代碼存在問題。你可以使用<log level="full"/>進行調試,直到你的配置執行到什麼級別。

0

嘗試將迭代器的ID添加到聚合器中。你的情況應該是這樣,

<aggregate id="Iterator1"> 

另外,如果您的每一個響應體與<GetPersonData>開始,那麼你需要將它添加到的onComplete表達。

<onComplete xmlns:ns="http://org.apache.synapse/xsd" xmlns:p="http://tempuri.org" expression="//p:GetPersonData"> 
+0

我已經實現了上述表達,但它又一次給我超時異常 – Roy