If I have a java first we service:
package com.example.v1;
@WebService
FooMethods {
foo1();
foo2();
}
And in version 2 of the same service, we add one method - we add one method
- which is a backwards compatible change, but we also change the package
and therefore namespace (as suggested in the best common practices of WSDL
versioning):
package com.example.v2;
@WebService
FooMethods {
foo1();
foo2();
foo3();
}
Now, clients that were written against the version 1 of the service will
fail against the new web service - even for methods that existed in version
1 of the web service (foo1 and foo2). This is because the older clients
come in looking for {http://v1.example.com}foo1 whereas on the server we
now have {http://v2.example.com}foo1
What is the right way to fix this? Write an interceptor to modify the
incoming namespace on the old URLs?
Versioning in the namespace is a very common practice, so I am hoping this
is a common problem that there is a good fix for. Let me know if I am doing
something unorthodox.
tia,
rouble