Hi All, I am trying to call a web service over the internet. I tried to deploy and use proof-of-concept services locally and they work fine ( using simple axis server). I am trying to call a web service at this location : http://www.thomas-bayer.com:80/axis2/services/BLZService This fails with the following error : Numeber :75 Message Error occurred in transport I am not sure why the error is encountered. Attached are the source files & http conf (trimmed only with axis config) and axis2.xml
Thanks & Regards, Haresh
#include <stdio.h> #include <axiom.h> #include <axis2_util.h> #include <axiom_soap.h> #include <axis2_client.h> axiom_node_t * build_om_request(const axutil_env_t *env); const axis2_char_t * process_om_response(const axutil_env_t *env, axiom_node_t *node); axiom_node_t *create_custom_header(const axutil_env_t *env); int main(int argc, char** argv) { const axutil_env_t *env = NULL; const axis2_char_t *address = NULL; const axis2_char_t *address1 = NULL; axis2_endpoint_ref_t* endpoint_ref = NULL; axis2_options_t *options = NULL; const axis2_char_t *client_home = NULL; axis2_svc_client_t* svc_client = NULL; axiom_node_t *payload = NULL; axiom_node_t *ret_node = NULL; axiom_namespace_t *ns1 = NULL; axiom_namespace_t *ns2 = NULL; env = axutil_env_create_all("hello_client.log", AXIS2_LOG_LEVEL_TRACE); options = axis2_options_create(env); address1 ="http://www.thomas-bayer.com:80/axis2/services/BLZService"; if (argc > 1) address = argv[1]; if (axutil_strcmp(address, "-h") == 0) { printf("Usage : %s [endpoint_url]\n", argv[0]); printf("use -h for help\n"); return 0; } printf("Using endpoint : %s\n", address1); endpoint_ref = axis2_endpoint_ref_create(env, address1); axis2_options_set_to(options, env, endpoint_ref); axis2_options_set_action(options, env, address1); client_home = AXIS2_GETENV("AXIS2C_HOME"); if (!client_home && !strcmp(client_home, "")) client_home = "../.."; svc_client = axis2_svc_client_create(env, client_home); if (!svc_client) { printf("Error creating service client\n"); AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Stub invoke FAILED: Error code:" " %d :: %s", env->error->error_number, AXIS2_ERROR_GET_MESSAGE(env->error)); return -1; } axis2_svc_client_set_options(svc_client, env, options); axis2_options_set_action(options, env, address1); payload = build_om_request(env); ret_node = axis2_svc_client_send_receive(svc_client, env, payload); if (ret_node) { const axis2_char_t *greeting = process_om_response(env, ret_node); if (greeting) printf("\nReceived greeting: \"%s\" from service\n", greeting); axiom_node_free_tree(ret_node, env); ret_node = NULL; } else { AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Stub invoke FAILED: Error code:" " %d :: %s", env->error->error_number, AXIS2_ERROR_GET_MESSAGE(env->error)); printf("hello client invoke FAILED! Numeber :%d Message %s \n",env->error->error_number,AXIS2_ERROR_GET_MESSAGE(env->error)); } if (svc_client) { axis2_svc_client_free(svc_client, env); svc_client = NULL; } if (env) { axutil_env_free((axutil_env_t *) env); env = NULL; } return 0; } axiom_node_t * build_om_request(const axutil_env_t *env) { axiom_node_t* greet_om_node = NULL; axiom_element_t * greet_om_ele = NULL; axiom_namespace_t *ns0=NULL,*ns2 = NULL,*ns3 = NULL; greet_om_ele = axiom_element_create(env, NULL, "greet", NULL, &greet_om_node); axiom_element_set_text(greet_om_ele, env, "Hello Server!", greet_om_node); return greet_om_node; } const axis2_char_t * process_om_response(const axutil_env_t *env, axiom_node_t *node) { axiom_node_t *service_greeting_node = NULL; axiom_node_t *tmp_node = NULL; axiom_element_t * ele1 = NULL, *ele2 = NULL; axiom_attribute_t * attr1 = NULL; axiom_node_t *return_node = NULL; axutil_hash_index_t * hi = NULL; axiom_attribute_t * attr = NULL; axutil_hash_t * attr_hash = NULL; axiom_node_t * child_node = NULL; axiom_element_t * ele3 = NULL; axiom_node_t * bored = NULL; ele3 = (axiom_element_t *)axiom_node_get_data_element(node, env); if (node) { service_greeting_node = axiom_node_get_first_child(node, env); if (axiom_node_get_node_type(node, env) == AXIOM_ELEMENT) { ele2 = (axiom_element_t *) axiom_node_get_data_element(node, env); } axiom_node_t *p = axiom_node_get_parent(service_greeting_node,env); axiom_node_t *p2 = axiom_node_get_parent(p,env); axiom_node_t *p3 = axiom_node_get_parent(p2,env); if(p3) { printf("data type element is %d",axiom_node_get_node_type(p3,env)); } axiom_element_t *om_element; om_element = (axiom_element_t *)axiom_node_get_data_element(p3, env); axis2_char_t *name = axiom_element_get_localname(om_element,env); printf(" name of element is %s ", name); } return NULL; } axiom_node_t *create_custom_header(const axutil_env_t *env) { axiom_namespace_t *ns1 = NULL; axiom_element_t *ele1 = NULL; axiom_node_t *custom_header_node = NULL; axiom_element_t *custom_header_ele = NULL; axiom_node_t *impl_node = NULL; axiom_element_t *impl_ele = NULL; axiom_node_t *from_node = NULL; axiom_element_t *from_ele = NULL; axiom_node_t *version_node = NULL; axiom_element_t *version_ele = NULL; axiom_node_t *cred_node = NULL; axiom_element_t *cred_ele = NULL; axiom_node_t *user_node = NULL; axiom_element_t *user_ele = NULL; axiom_node_t *pwd_node = NULL; axiom_element_t *pwd_ele = NULL; axiom_node_t *to_node = NULL; axiom_element_t *to_ele = NULL; axiom_node_t *sysid_node = NULL; axiom_element_t *sysid_ele = NULL; axiom_node_t *ts_node = NULL; axiom_element_t *ts_ele = NULL; axiom_node_t *echtok_node = NULL; axiom_element_t *echtok_ele = NULL; axiom_node_t *trid_node = NULL; axiom_element_t *trid_ele = NULL; axiom_node_t *action_node = NULL; axiom_element_t *action_ele = NULL; char *systemId = "SysID"; ns1 = axiom_namespace_create(env, "http://org/Header/",NULL); custom_header_ele = axiom_element_create(env, NULL, "HTNGHeader", ns1, &custom_header_node); from_ele = axiom_element_create(env,custom_header_node,"From",ns1,&from_node); impl_ele = axiom_element_create(env, from_node, "SystemId", ns1, &impl_node); axiom_element_set_text(impl_ele, env,"lulz", impl_node); cred_ele = axiom_element_create(env, custom_header_node, "Credential", ns1, &cred_node); user_ele = axiom_element_create(env,cred_node,"User",ns1,&user_node); axiom_element_set_text(user_ele, env,"UserName", user_node); pwd_ele = axiom_element_create(env,cred_node,"Password",ns1,&pwd_node); axiom_element_set_text(pwd_ele, env,"****", pwd_node); to_ele= axiom_element_create(env,custom_header_node,"To",ns1,&to_node); sysid_ele=axiom_element_create(env,to_node,"systemId",ns1,&sysid_node); axiom_element_set_text(sysid_ele,env,"System ID",sysid_node); ts_ele = axiom_element_create(env,custom_header_node,"Timestamp",ns1,&ts_node); axiom_element_set_text(ts_ele,env,"DD-MM-YY",ts_node); echtok_ele = axiom_element_create(env,custom_header_node,"EchoTok",ns1,&echtok_node); axiom_element_set_text(echtok_ele,env,"DD-MM-YY",echtok_node); trid_ele = axiom_element_create(env,custom_header_node,"TransactionId",ns1,&trid_node); axiom_element_set_text(trid_ele,env,"100",trid_node); action_ele = axiom_element_create(env,custom_header_node,"Action",ns1,&action_node); axiom_element_set_text(action_ele,env,"stringAct",action_node); axiom_namespace_free(ns1, env); return custom_header_node; } void print_node ( axiom_node_t *ret_node, const axutil_env_t *env) { axis2_char_t *om_str = axiom_node_to_string(ret_node, env); if (om_str) printf("\nReceived OM : %s\n", om_str); else printf("iFailed!\n"); }
<axisconfig name="Axis2/C"> <!-- ================================================= --> <!-- Parameters --> <!-- ================================================= --> <!-- Uncomment following to enable MTOM support globally --> <!--parameter name="enableMTOM" locked="false">true</parameter--> <!-- Set the suitable size for optimum memory usage when sending large attachments --> <!--parameter name="MTOMBufferSize" locked="false">10</parameter--> <!--parameter name="MTOMMaxBuffers" locked="false">1000</parameter--> <!--parameter name="EnableMTOMServiceCallback" locked="false">true</parameter--> <!--parameter name="attachmentDIR" locked="false">/path/to/the/attachment/caching/dir/</parameter--> <!--parameter name="MTOMCachingCallback" locked="false">/path/to/the/caching_callback</parameter--> <!--parameter name="MTOMSendingCallback" locked="false">/path/to/the/sending_callback</parameter--> <!-- Enable REST --> <parameter name="enableREST" locked="false">true</parameter> <!-- Uncomment following to persist op_ctx, useful with RM --> <!--parameter name="persistOperationContext" locked="false">true</parameter--> <!--if you want to extract the service archive file and work with that please uncomment this--> <!--else , it wont extract archive file or does not take into consideration if someone drop--> <!--exploded directory into /service directory--> <!--<parameter name="extractServiceArchive" locked="false">true</parameter>--> <!-- ================================================= --> <!-- Message Receivers --> <!-- ================================================= --> <!-- This is the Deafult Message Receiver for the Request Response style Operations --> <!--messageReceiver mep="INOUT" class="axis2_receivers"/--> <!-- ================================================= --> <!-- Transport Ins --> <!-- ================================================= --> <transportReceiver name="http" class="axis2_http_receiver"> <parameter name="port" locked="false">6060</parameter> <parameter name="exposeHeaders" locked="true">false</parameter> </transportReceiver> <!--transportReceiver name="https" class="axis2_http_receiver"> <parameter name="port" locked="false">6060</parameter> <parameter name="exposeHeaders" locked="true">false</parameter> </transportReceiver--> <!--transportReceiver name="tcp" class="axis2_tcp_receiver"> <parameter name="port" locked="false">6060</parameter> </transportReceiver--> <!-- ================================================= --> <!-- Transport Outs --> <!-- ================================================= --> <transportSender name="http" class="axis2_http_sender"> <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter> <parameter name="xml-declaration" insert="false"/> <!--parameter name="Keep-Alive" locked="false">true</parameter--> <!--parameter name="Transfer-Encoding">chunked</parameter--> <!--parameter name="HTTP-Authentication" username="" password="" locked="true"/--> <!--parameter name="PROXY" proxy_host="127.0.0.1" proxy_port="8080" proxy_username="" proxy_password="" locked="true"/--> </transportSender> <!-- Uncomment the following with appropriate parameters to enable the SSL transport sender. Also make sure that the appropriate transport receiver is enabled above.--> <!--transportSender name="https" class="axis2_http_sender"> <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter> <parameter name="xml-declaration" insert="false"/> </transportSender> <parameter name="SERVER_CERT">/path/to/ca/certificate</parameter> <parameter name="KEY_FILE">/path/to/client/certificate/chain/file</parameter> <parameter name="SSL_PASSPHRASE">passphrase</parameter> --> <!-- Uncomment this one with the appropriate papameters to enable the TCP transport Sender--> <!--transportSender name="tcp" class="axis2_tcp_sender"> <parameter name="PROTOCOL" locked="false">TCP</parameter> <parameter name="xml-declaration" insert="false"/> </transportSender--> <!-- ================================================= --> <!-- Global Modules --> <!-- ================================================= --> <!-- Comment this to disable Addressing --> <module ref="addressing"/> <!--Configuring module , providing paramters for modules whether they refer or not--> <!--<moduleConfig name="addressing">--> <!--<parameter name="addressingPara" locked="false">N/A</parameter>--> <!--</moduleConfig>--> <!-- ================================================= --> <!-- Phases --> <!-- ================================================= --> <phaseOrder type="inflow"> <!-- System pre defined phases --> <phase name="Transport"/> <phase name="PreDispatch"/> <phase name="Dispatch"/> <phase name="PostDispatch"/> <!--phase name="Security"/--> <!-- End system pre defined phases --> <!-- After PostDispatch phase, module or service author can add any phase as required --> <!-- User defined phases could be added here --> <!--phase name="userphase1"/--> </phaseOrder> <phaseOrder type="outflow"> <!-- User defined phases could be added here --> <!--phase name="userphase1"/--> <!--system predefined phase--> <phase name="MessageOut"/> <!--phase name="Security"/--> </phaseOrder> <phaseOrder type="INfaultflow"> <!-- User defined phases could be added here --> <!--phase name="userphase1"/--> </phaseOrder> <phaseOrder type="Outfaultflow"> <!-- User defined phases could be added here --> <!--phase name="userphase1"/--> <phase name="MessageOut"/> </phaseOrder> </axisconfig>
httpd.conf
Description: Binary data
--------------------------------------------------------------------- To unsubscribe, e-mail: c-user-unsubscr...@axis.apache.org For additional commands, e-mail: c-user-h...@axis.apache.org