views:

46

answers:

2

Hi , I have a webservice [call it S1] exposed and clients call that service and get back response.So good so far.

I have to change my WSDL a bit [for some very odd reasons] but i dnt want clients to see the change. So my idea is to intercept the soap request somewhere b/w server and client and interceptor should modify the soap request and forward to the server.Similarly on response , again interceptor should intercept the request and change some property name and send it to the client.

Any idea how to do this? One approach IMO is to use handlers but here i dont have control over how server generates service from WSDL. How can ESB help in this?

Please see its realtime application with huge requests to and from server!!!

A: 

Can you not write a new web service with the new wsdl, then alter the old web service to simply call the new web service. A bit like overloading a method. That way you can have V1 and V2 web services.

Ben Robinson
Yes thats one of the approaches in mind. But again , since there can be thousands of requests per second, i may get scalability issues! What do you think?
Rizwan Sharif
THe fact that you want to change your WSDL but at the same time leave it the same, implies you need 2 web services. The way i usually aproach a web service is a simple wrapper around a normal method on a normal class. You could write you new web service and modify your old web service to use the same undelying class and method. That would minimise performance issues.
Ben Robinson
well the problem again , its more like contract-first webservice. where i have no idea of classes and methods [ where they are ]. All i can play around is with WSDL file. I have heard terms like Webservice Routing in ESB , can they be of any help ?
Rizwan Sharif
A: 

An ESB like Mule ESB can help by acting as a proxy for your web service. See http://www.mulesoft.org/documentation/display/MULE3USER/Web+Service+Proxy+Pattern

Ken