2016-04-07 1 views
0

Мне нужно использовать 3 XSLT-преобразования в моем ESB-прокси (Wso2), но это не работает.Могу ли я использовать более двух преобразований XSLT в ESB Proxy (WSO2)? Для этого есть предел?

Когда я пытаюсь использовать 2 XSLT и 1 Factory Factory (вместо второго XSLT), прокси работает правильно: выполните первый XSLT, вызовите первую услугу, выполните второй XSLT, вызовите вторую услугу, выполните третий XSLT и ответьте правильно, заканчивая поток.

Но когда я изменяю эту фабрику полезных нагрузок для преобразования XSLT, прокси-сервер выполняет первый XSLT, вызывает первую услугу, выполняет второй XSLT, пропускает второй вызов и пытается выполнить третий XSLT, но перестает работать.

Если я посмотрю на свой файл журнала, это показывает, что сервер делает преобразования правильно (я поместил некоторые журналы, чтобы увидеть это, а преобразования правильные). Поэтому я считаю, что мои преобразования правильные.

Мой прокси-сервер это то звено, которое:

<proxy name="Proxy1" startOnLoad="true" trace="disable" transports="http https" xmlns="http://ws.apache.org/ns/synapse"> 
    <target> 
    <inSequence> 
     <xslt key="conf:transformation/TransformSubmitPartnerRequestToFirstExternalServiceRequest.xsl" source="//SubmitPartnerRequest"> 
     </xslt> 
     <call> 
     <endpoint key="FirstExternalServiceEndpoint"/> 
     </call> 
     <xslt key="conf:transformation/transformFirstExternalServiceResponseToSecondExternalServiceRequest.xsl" source="//FirstExternalServiceResponse"> 
     </xslt> 
     <call> 
     <endpoint key="CLMServiceEndpoint"/> 
     </call> 
     <send/> 
    </inSequence> 
    <outSequence> 
     <xslt key="conf:transformation/transformSecondExternalServiceResponseToSubmitPartnerResponse.xsl" source="//SecondExternalServiceResponse"/> 
     <send/> 
    </outSequence> 
    <faultSequence/> 
    </target> 
    <publishWSDL key="gov:wsdl/ServiceV1.wsdl"> 
    <resource key="gov:wsdl/Information.xsd" location="./Information.xsd"/> 
    </publishWSDL> 
</proxy> 

Пример моих преобразований:

<!-- First transformation: TransformSubmitPartnerRequestToFirstExternalServiceRequest.xsl --> 
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" /> 
    <xsl:template match="//SubmitPartnerRequest"> 
    <Request> 
     <!-- info here... --> 
     </Request> 
    </xsl:template> 
</xsl:stylesheet> 

там что-то случилось с моим кодом? Могу ли я использовать более 2 преобразований XSLT в своем ESB-прокси?

ответ

0

Я пытался отправить свойства ко второй XSLT-трансформации, и в этом была проблема.

Я изменил его, и теперь мой прокси работает правильно.

0

В вашем inSequence, мы можем найти:

  • XSLT
  • вызов конечной точки
  • XSLT
  • вызов конечной точки
  • посыла -> это отправить без конечной вышлет ток сообщение в ответ

Ваша внешняя необходимость должна быть n ot быть выполнен: удалите его и добавьте его xslt внутри inSequence до последнего отправления mediator

+0

Я поставил последний XSLT внутри inSequence, но проблема продолжается ... Моя внешняя необходимость пуста. –

+0

использовать log level = "full" между 3-м xslt и последней отправкой: можете ли вы увидеть результат своей трансформации? если нет, можете ли вы найти ошибки в wso2-esb-error.log? –