Details
Description
I created a services in C/C++ under Linux using the Axis2/c framework.
The service have one function which takes one string parameter. I run the service using the Apache axis module.
The soap xml message is similar to the following (checked with tcpmon):
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Receive xmlns="http://vww.obscuredforprivacy.xxx/axis2/services/Begin">
<updategram>long text string</updategram>
</Receive>
</s:Body>
</s:Envelope>
If the long text string in the <updategram> element is longer than 128K, in the call to the main serivice procedure (the one assigned to axis2_svc_skeleton_ops::invoke and called by the axis2 engine), the node parameter (third parameter of type axiom_node_t *) have the following structure:
<Receive><updategram></updategram></Receive>
that is the <updategram> is empty. There is no error in any log. The <updategram> is discarded.
This happen only if the axis2c framework is configured with the default options. That is, the guththila parser is used (it is on by default). If I configure axis2 with the --enable-libxml2, everything is working fine.
So it seem to be a limit in the guththila parser.
Grretings