簡體   English   中英

在匯總介體中出現錯誤?

[英]Getting error in 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>

如果我不使用Aggregate中介,那么我會收到上述響應;但是,如果我使用Aggregate中介,我會得到請求超時異常

我的順序是:

<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>

我在做什么錯。期待您的答復。謝謝

嘗試將迭代器的ID添加到聚合器中。 就您而言,應該是

<aggregate id="Iterator1">

另外,如果每個響應主體都以<GetPersonData>開頭,則需要將其添加到onComplete中的表達式中。

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

您能用給出的代碼指定問題嗎? 您可以使用<log level="full"/>進行調試,直到執行配置的級別。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM