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:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<updategram>long text string</updategram>
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:
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.