2013-07-12 4 views
0

Я использую посредник итерации и посредника. Мой запрос:Ошибка при сбое в агрегированном посреднике?

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

Если я не использую агрегатный посредник, то я получаю выше ответ, но если я использую агрегатный посредник я получаю тайм-аут запроса Exception

Мои в последовательности является:

<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

Попробуйте добавить идентификатор итератора к агрегатору. В вашем случае она должна быть,

<aggregate id="Iterator1"> 

Кроме того, если каждый из вашего тела ответа начинается с <GetPersonData>, то вам нужно добавить, что выражение в OnComplete.

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

Я также внедрил вышеуказанное выражение, но оно снова дало мне исключение тайм-аута – Roy

Смежные вопросы