I´m using an Axis2 Java client to communicate with a gSoap web service. Axis2 rejects the gSoap response so I used wireshark to see what´s gSoap sending back. Now it´s clear what is the problem, gSoap is not sending the “HTTP/1.1 200 OK” as the first line. That´s because i´m using WITH_NOIO, so if your are having the same problem either write yourself the “HTTP/1.1 200 OK” line into the response or change the stdsoap2.c file to send the line anyway. just look for the line
if (soap_valid_socket(soap->master) || soap_valid_socket(soap->socket)) ... sprintf(soap->tmpbuf, "HTTP/%s %s", soap->http_version, s);
nor soap->master nor soap->socket would be valid sockets if you are handling the sockets yourself outside gSoap (and if you ´re usig WITH_NOID that´s probably the case) so that if clause will be always false. you can wrap that if clause with a “#ifndef WITH_NOID” or just comment out the if.