Win a copy of Murach's Python Programming this week in the Jython/Python forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Rolling Out Web Service Updates To Customers  RSS feed

 
James Rr
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
We have successfully rolled out a web service to a number of clients. As part of this we provide them an .jar file containing all of the classes we return via the web service.

We now need to update one of the classes returned to add some new properties. However, when I now access the service using the old .jar file in my client, I get an parser exception.

We need to be able to roll this update out without breaking existing clients code, allowing them to upgrade at their own pace. Is there a way of doing this? I've had a search on the net and can't find anything obvious.

Thanks,
James.
 
Peer Reynders
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The brute force approach is to maintain the old endpoint (with its JAR) and to open up a new endpoint that requires the new JAR.
Then you inform your clients that you are deprecating the old endpoint and possibly give them a (reasonable) deadline.

The fact that you need to give your clients a JAR is a concern. Normally you would stick to a WSI Basic Profile specification for interoperability, design the web service WSDL first (preferably document-oriented) and then only give them access to the WSDL. Even then the design of the WSDL can be tricky because you need to make your document's XML-Schema restrictive enough to give you reasonable validation but also open enough to allow for later extension. But ultimately certain schema changes will force you to open alternate (versioned) web service endpoints.

6.5.5 Versioning and Evolution
Patterns and Strategies for Building Document-Based Web Services
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!