I have an old client which sends the following SOAP action:

http://company.com/webservices/GetInfo

 

However the new receiving service expects a different SOAP action:

http://company.com/webservices/v2/GetInfo

 

The idea is that when a service becomes incompatible with previous
clients, you change the namespace to prevent older clients from
accessing. So, we added a version number to the webservice namespace,
and to all SOAP actions, to control access.

 

However, I discovered that the Axis2 (1.2) service actually accepted the
GetInfo action/call and performed the operation, even though the version
number was missing from the SOAP action string. When I traced through
Axis2 code I saw that the SOAP action mismatch was detected, but that
the service code was able to match the operation name GetInfo by
comparing the SOAP action suffix "GetInfo" to the operation GetInfo, and
so proceeded with handling it.

 

Anyway, is this a configurable behavior? Should this be happening?

 

Thanks, Dave

 

PS: The client I was using was Dotnet, and, since the GetInfoResponse
used the new SOAP action namespace, the DotNet client rejected the
response, after the request had been run successfully by the service.
This was expected.

 

 

Reply via email to