views:

475

answers:

1

I am trying to configure web service proxying using Mule ESB.

I am attempting to do this using Mule's WSProxyService, but after stepping through the corresponding code (with the debugger), it is clear that this class replaces endpoint addresses.

The problem is Spring-WS WSDL addresses are of the style http://xxxx/xxxx.wsdl, but WSProxyService expects http://xxxx/xxxx?wsdl or http://xxxx/xxxx&wsdl. It replaces the remote endpoint addresses with the local WSDL address; it cuts the remote WSDL address at the question mark i.e. '?WSDL' is intended to be chopped off, so to create the search term. But because of Spring-WS, this does not work.

To break it down:

WSProxyService ends up trying to use

http://xxxx/xxxx.wsdl

to replace

http://xxxx/xxxx

with

http://yyyy/yyyy

which fails... leading to actual web service call going direct and not through the proxy.

Has anyone ever noticed/solved this problem??

Cheers, Darren

A: 

This may be applicable:

http://forum.springsource.org/showpost.php?p=101967&postcount=4

No, the ?WSDL is a way to get a WSDL of a class. In SWS, a service is not implemented as a class.

Dave
Well, there's a hint of a workaround in there, but then you'd lose all the dynamic Springy goodness - and I'm alredy doing this at the Mule end - not really a solution.Really, I'm just a bit disappointed that there isn't a simple attribute on some element that declares the use of a '?'.
Darren