Attila Gulyas
2014-01-15 12:43:44 UTC
Dear Axis2C Users,
I've got the task to write a SOAP client which can dynamically invoke services by using their WSDL file as an input. The information I see about Axis2C is quite controversial and I don't know if it is possible.
I did already write a client code which doesn't work. I'm not sure if the problem is with the support of this function, or with myself not interpreting the usage right (I _really_ hope for the latter).
The relevant codepart I wrote (using online resources) - I provide env, service and targetNameSpace as a parameter here:
<code>
//Create the service QName
axutil_qname_t * pWsdl_svc_qname = 0;
pWsdl_svc_qname = axutil_qname_create(env, service,targetNamespace, NULL);
//Parse WSDL
axutil_uri_t * pWsdl_uri = 0;
pWsdl_uri = axutil_uri_parse_string(env,"whois.wsdl");
axis2_conf_ctx_t *config=NULL;
//Create the client
axis2_svc_client_t *client=NULL;
client = axis2_svc_client_create_for_dynamic_invocation(
env, //environment
config, //Pointer to a NULL configuration
pWsdl_uri, //URI of the WSDL
pWsdl_svc_qname, //QName to be created with axutil_qname_create
service,
"C:/AxisRepo");
</code>
Seemingly everything works well until the last step - every pointer is initialized, there are no NULL pointers. When the last call to create the client is executed, the client will be a NULL pointer though.
Where could the problem be, is there no support for dynamic invocation (why wouldn't there be as I have the code to create a client in this manner), or am I doing something very wrong?
Thank you in advance!
Greetings,
Attila
I've got the task to write a SOAP client which can dynamically invoke services by using their WSDL file as an input. The information I see about Axis2C is quite controversial and I don't know if it is possible.
I did already write a client code which doesn't work. I'm not sure if the problem is with the support of this function, or with myself not interpreting the usage right (I _really_ hope for the latter).
The relevant codepart I wrote (using online resources) - I provide env, service and targetNameSpace as a parameter here:
<code>
//Create the service QName
axutil_qname_t * pWsdl_svc_qname = 0;
pWsdl_svc_qname = axutil_qname_create(env, service,targetNamespace, NULL);
//Parse WSDL
axutil_uri_t * pWsdl_uri = 0;
pWsdl_uri = axutil_uri_parse_string(env,"whois.wsdl");
axis2_conf_ctx_t *config=NULL;
//Create the client
axis2_svc_client_t *client=NULL;
client = axis2_svc_client_create_for_dynamic_invocation(
env, //environment
config, //Pointer to a NULL configuration
pWsdl_uri, //URI of the WSDL
pWsdl_svc_qname, //QName to be created with axutil_qname_create
service,
"C:/AxisRepo");
</code>
Seemingly everything works well until the last step - every pointer is initialized, there are no NULL pointers. When the last call to create the client is executed, the client will be a NULL pointer though.
Where could the problem be, is there no support for dynamic invocation (why wouldn't there be as I have the code to create a client in this manner), or am I doing something very wrong?
Thank you in advance!
Greetings,
Attila