Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The Axis C++ server requires that the soapaction is always set. However other servers do not require that soapaction is set since soapaction is optional. Service handlers are called based on the soapaction so having no soapaction means that no service handlers can be configured in the WSDD. The soapaction is set in the WSDL and WSDL2Ws generates a call to Call::setTransportProperty to set the soapaction, even if the soapaction is not set in the WSDL. This generated call to Call::setTransportProperty will override any previous soapaction transport property that the user has previously set up.
So if the server doesn't require a soapaction, the wsdl won't contain a soapaction, but the user may want to call a handler, so the client application sets up a soapaction programmatically. Now the generated code will wipe out the soapaction and no handler will be called.
There are several possible fixes...
- ask the user to change their generated code to update the soapaction.
- change setTransportProperty so that it doesn't override the properties if they are already set
- make WSDL2Ws not generate a call to setTransportProperty if the soapaction is not set in the WSDL.
I propose to fix this problem by the 3rd option - fix WSDL2Ws since it seems the most benign.
Attachments
Issue Links
- relates to
-
AXISCPP-497 Problems with Stub::setTransportProperty
- Closed