Я использовал шаблон прокси веб-службы, предоставленный 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);
}
}