I could not even get your VBscript to work. It failed with the following message:
initialization failed WSDLOperation:
The operation getCandidateScheduleData is defined with encoded-style but has no encoding attribute HRESULT=0x80004005: Unspecified error - WSDLOperation:Initializing of the input message failed for operation getCandidateScheduleData
HRESULT=0x80004005: Unspecified error - WSDLPort:An operation for port ScheduleSoapPort could not be initialized
HRESULT=0x80004005: Unspecified error - WSDLPort:Analyzing the binding information for port ScheduleSoapPort failed
HRESULT=0x80004005: Unspecified error - WSDLService:Initialization of the port for service ALMVTC failed
HRESULT=0x80004005: Unspecified error - WSDLReader:Analyzing the WSDL file failed
HRESULT=0x80004005: Unspecified error - Client
ne of the parameters supplied is invalid.
HRESULT=0x80070057: The parameter is incorrect.
After I added a
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
in the right place it started to work.
This is the request that the VBscript/MS Soap Toolkit 3.0 sent:
As you can see even this request
doesn't have the
string as literal XML either - so that can't be the problem. The most glaring difference between this request and the one that your axis code generated is the lack of the SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" attribute in the Axis request.
If you have a close look at the WSDL that you supplied
you should notice something peculiar. The WSDL specifies a "rpc/encoded" style binding for the getCandidateScheduleData operation input binding but then it specifies a "rpc/literal" style binding for the getCandidateScheduleData operation output binding!!!
Every SOAP web service I have ever run across used the same style on both the input and output! This must have confused Axis and it fell back onto "rpc/literal" when the actual web service was expecting "rpc/encoded". Once you tweak the WSDL to list both input and output as "encoded" Axis creates the correct request. Here is the relevant WSDL segment:
Axis Client Code:
Resulting request from Axis client code:
Note however the difference in the location of the encodingStyle attribute. The MS SOAP3 places it inside the SOAP body element. Axis on the other hand places it inside the getCandidateScheduleData element. According to the
SOAP 1.1 Note this should not matter � but who knows.