Hi, I have a Java
web service that returns xsd:string data to the Axis C++ client. I have
noticed that if the returned string contains angle brackets (<>) then the
client fails (with a heap corruption message -- I'm running in debug). The SOAP
message is returned correctly, and the start element is found. The error seems
to happen when the client tries to parse the message for the content
of the string.
Client fails at:
getElementAsString( AxisChar* pName, AxisChar*
pNamespace)
File is: SoapDeSerializer.cpp
Line number is: 3049 in Axis C++
1.4,
Call is: m_pNode =
m_pParser->next (true);
Sample SOAP message that
fails:
<soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getEnvelopeRecipientReturn xsi:type="xsd:string"><Any string at all></getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getEnvelopeRecipientReturn xsi:type="xsd:string"><Any string at all></getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>
Sample SOAP message that
works:
<soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getEnvelopeRecipientReturn xsi:type="xsd:string">Any string at all</getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Body>
<getEnvelopeRecipientResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<getEnvelopeRecipientReturn xsi:type="xsd:string">Any string at all</getEnvelopeRecipientReturn>
</getEnvelopeRecipientResponse>
</soapenv:Body>
</soapenv:Envelope>
I tried escaping the
angle brackets with < and > but that didn't solve the problem. Any
ideas?
Thanks,
Bruce.
