Передать запрос сервиса Mule ESB на условные маршрутизаторы - PullRequest
2 голосов
/ 29 декабря 2011

Я предоставляю сервис CXF, используя Mule ESB, и мне нужно передать запрос как есть условным маршрутизаторам. Большинство примеров, которые я вижу, передают ответ условным маршрутизаторам.

Как передать запрос вперед без изменения wsdl?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Я уточню этот ответ, когда ОП даст большую точность

Поместите процессор маршрутизации сообщений выбора после компонента, который реализует ваш веб-сервис.

1 голос
/ 19 января 2012

Я использовал шаблон прокси веб-службы, предоставленный Mule ESB 3

<pattern:web-service-proxy name="theProxy" 
         outboundAddress="vm://theProxyFlow" 
        wsdlFile="classpath:wsdl/MyWsWSDL.wsdl" inboundAddress="${inbound.url}" transformer-refs="RequestToString">
</pattern:web-service-proxy>

И конечная точка виртуальной машины фактически выполняет маршрутизацию на основе условий с использованием выражения xpath. Однако мне пришлось написать собственный преобразователь «RequestToString», чтобы я мог применить xpath к входящей полезной нагрузке SOAP.

Я использовал следующее преобразование в трансформаторе -

      if (src instanceof InputStream)
        {
            InputStream input = (InputStream) src;
            try
            {
                reqAsString = IOUtils.toString(input);
            }
            finally
            {
                IOUtils.closeQuietly(input);
            }
        }
...