Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
All platforms
Description
When Stub::setSOAPMethodAttribute is called multiple times the stub sets the arrtibute multiple times.
e.g. For UDDI WSDL (inquire_v2.wsdl) I called two methods on the stub.
First
tModel_Array result = ws->get_tModelDetail(arrtModelKeys, cpname);
and then
businessEntity_Array businessEntities = ws->get_businessDetail(arrBusinessKeys, cpname);
where
cpname = "2.0";
For 1st methods it sends:
<?xml version='1.0' encoding='utf-8' ?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns1:get_tModelDetail xmlns:ns1="urn:uddi-org:api_v2" generic="2.0"><ns1:tModelKey>UUID:39B8F710-F088-11D6-8F10-000629DC0A7B</ns1:tModelKey></ns1:get_tModelDetail></SOAP-ENV:Body></SOAP-ENV:Envelope>
And for second methods it sends
<?xml version='1.0' encoding='utf-8' ?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><ns1:get_businessDetail xmlns:ns1="urn:uddi-org:api_v2" generic="2.0" generic="2.0"><ns1:businessKey>D368F080-8423-11D6-9FFC-000C0E00ACDD</ns1:businessKey></ns1:get_businessDetail></SOAP-ENV:Body></SOAP-ENV:Envelope>
Note the duplicated methods attribute 'generic="2.0"' in the second SOAP message.
Looking into the generated stub call I see that
setSOAPMethodAttribute("generic", "", Value1);
is called for each method once. Looks like the Stub cache the set SOAP methods attributes and reuse in subsequent calls.
This causes the server to send a "Client Error" Fault.