0

We have done some modification in existing WSDL for a new client. Modifications are like added some parameters in a request and response. As mentioned below,getDetails response only contains address field and now firstName is added to it :

Earlier:

<wsdl:message name="getDetails_response">      
    <wsdl:part name="address" type="tns:addType"></wsdl:part>
</wsdl:message>

Later:

 <wsdl:message name="getDetails_response">
      <wsdl:part name="firstName" type="tns:nameType"></wsdl:part>
      <wsdl:part name="address" type="tns:addType"></wsdl:part>
 </wsdl:message>

My concern is there any option that old client do not get impacted by above changes or just recompilation of WSDL will do the work? I don't want that old client have to change its source code because of this WSDL change? How make it backward compatible?

Infotechie
  • 1,653
  • 6
  • 23
  • 35
  • I think you'll have to think about versioning your system. There's a good post about this with WCF here: http://www.codeproject.com/Articles/352586/WCF-Backward-Compatibility-and-Versioning-Strategi – Patrick Magee Jun 04 '13 at 07:30

2 Answers2

0

If you modify the response, this will have an impact in the wsdl. If you don't want this, you can return the old wsdl (that you need to put in a /resources folder in your war/ear). I did it once so it is possible. But this is a little dirt...

Paolof76
  • 889
  • 1
  • 9
  • 23
  • Here I've found an example: http://stackoverflow.com/questions/764772/jax-ws-loading-wsdl-from-jar, hope could help. – Paolof76 Jun 04 '13 at 07:41
0

Parts inside a WSDL description shouldn't be used to implement business information. It should stay static as much as possible. Those fields are made to define parts such as header, body, custom signature, etc...

YAVS
  • 1