2013-04-20 3 views
3

как использовать faultsequence прокси в ESBWSO2: ESB faultsequence

я хочу использовать faultsequence при возникновении неисправности в конечной точке. например, я останавливаю службу1 с помощью jconsole и хочу перенаправить сообщение на service2 при вызове службы прокси. но когда я называю прокси с помощью SoapUI это показать FAULT это сообщение: Система пытается получить доступ к неактивным службы ..

<target> 
    <inSequence > 
    <send> 
     <endpoint name="cal" >  
     <address uri="http://localhost:9763/services/service1/"/> 
     </endpoint> 
    </send> 
    </inSequence> 
    <faultSequence> 
    <log level="custom"> 
     <property name="text" value="An unexpected error occured for service"/> 
     <property name="message" expression="get-property('ERROR_MESSAGE')"/> 
    </log> 
    <send> 
     <endpoint> 
      <address uri="http://localhost:9763/services/service2/"/> 
     </endpoint> 
    </send> 
    </faultSequence> 

, пожалуйста, руководство меня!

ответ

0

Я считаю, что ваш точный сценарий отличается от вашей основной конечной точки, если вам не нужно направить сообщение на вторичную конечную точку.

Правильный подход к вашей реализации не использует правильную подсистему сбоя, используя метод fail over endpoint. Вы можете найти справочный документ в [1] [2].

Для примера вы можете обратиться к «Пример 53: Отказоустойчивость, отправляемая между 3 конечными точками» [3].

[1]. http://wso2.org/project/esb/java/3.0.1/docs/endpoint_guide.html#FoEp [2]. http://docs.wso2.org/wiki/display/ESB403/Failover+Endpoint [3]. http://wso2.org/project/esb/java/3.0.1/docs/samples/endpoint_mediation_samples.html

Thank you, Dharshana.

+0

Спасибо, дорогая Дхаршана. да, это правильно, ваше предположение, но адрес моей вторичной конечной точки является динамическим, и мне нужна новая последовательность (последовательность ошибок), которая загружает в нее посредника класса и маршрутизирует сообщение в новый пункт назначения, который указан посредником класса. поэтому я думаю, что вам нужна последовательность сбоев. это правда? потому что конечная точка при сбое статична! –

+0

Можно вызвать другую последовательность внутри последовательности сбоев. Да для вашего сценария вам нужно использовать последовательность сбоев. Вы можете установить последовательность неисправностей targer ниже <цель faultSequence = «тест»> , то вы можете реализовать новую конечную точку логики внутри тестовой последовательности – Dharshana

1

Когда ваша конечная точка 1 неактивна, она возвращает ошибку мыла, и вы хотите, чтобы она перешла к последовательности сбоев. Но в настоящий момент эта последовательность ошибок считается ответом и отправляется клиенту (мыло ui).

В WSO2 ESB 4.5.0 добавлено новое свойство FORCE_ERROR_ON_SOAP_FAULT. Установив это свойство, неисправности мыла будут направлены на последовательность сбоев. Вы можете выполнять следующие логики, когда вы находитесь в последовательности сбоев (например, ссылаясь на другую последовательность).

Обратитесь к [1] ​​за пример прокси-сервиса.

[1] http://maharachchi.blogspot.com/2012/09/now-you-can-send-soapfaults-to-fault.html

+0

ли это удовлетворить ваши требование? –