soapaxisaxis2c

Can Axis2 SOAP clients consume non-Axis services?


Considering the below piece of code :

ret_node = axis2_svc_client_send_receive(svc_client, env, payload);
//Send request to an Axis2 Server from an Axis2C Client which consumes the service.

This requires that the server is Axis as the return value ret_node is of the type axiom_node_t.

However, I wish to write an Axis2C SOAP Client that will communicate to less known Tally HTTP Server which runs at port 9000.

I haven't seen any such example where an Axis2c client communicates with a non-Axis server. I believe this is possible.

  1. Can an axis2c client consume a non-axis service?
  2. If yes, could anybody point out some examples or shed some light on howto?

Solution

  • Axis2/C is only able to handle SOAP, so it's not possible to get it working with Tally HTTP Server which works over XML-RPC protocol, which is not compatible with SOAP.

    If you want to create Axis2/C client which works with SOAP service, easiest way is to use codegeneration with databinding. Any SOAP webservice must provide WSDL which completely describe protocol. To learn how to generate client stub from WSDL look here: http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html#wsdl2c

    If you need for other examples on how to build SOAP client you may download Axis2/C source code and look into samples directory.