Hi, I am using AXIS2C client api in my application to access web
services which is developed with .NET. The way that I send my request is as below: /* Send request */ ret_node =
axis2_svc_client_send_receive(svc_client, env, payload); if (ret_node) {
axis2_char_t *om_str = NULL; om_str =
axiom_node_to_string(ret_node, env); if
(om_str)
printf("\nReceived
printf("\nclient invoke SUCCESSFUL!\n");
AXIS2_FREE(env->allocator, om_str); 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("client invoke FAILED!\n"); } I have 2 questions: 1. I send my requests in a loop. Inside the loop, I keep sending
about 30 requests to the same web service. Sometime one or more requests would print
out “client invoke FAILED”. What could be the reason that
causes this problem? 2. Sometime when I print out the result from server, it only
contain partial information. Really appreciate your help! Jan-fon |
For your first question, it seems to me you are losing a socket connection
or timeout on the connection to server, check your network. For your second problem, it may be is related to drop of socket from first question. thx Amir ----- Original Message ----- From: "Fan, Jan-fon" <[hidden email]> To: "Apache AXIS C User List" <[hidden email]> Sent: Thursday, February 18, 2010 10:39 PM Subject: Client API problem Hi, I am using AXIS2C client api in my application to access web services which is developed with .NET. The way that I send my request is as below: /* Send request */ ret_node = axis2_svc_client_send_receive(svc_client, env, payload); if (ret_node) { axis2_char_t *om_str = NULL; om_str = axiom_node_to_string(ret_node, env); if (om_str) printf("\nReceived OM : %s\n", om_str); printf("\nclient invoke SUCCESSFUL!\n"); AXIS2_FREE(env->allocator, om_str); 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("client invoke FAILED!\n"); } I have 2 questions: 1. I send my requests in a loop. Inside the loop, I keep sending about 30 requests to the same web service. Sometime one or more requests would print out "client invoke FAILED". What could be the reason that causes this problem? 2. Sometime when I print out the result from server, it only contain partial information. Really appreciate your help! Jan-fon |
Hi Amir,
To debug the partial return problem, I use WireShark to capture the traffic/packet on the network and find out the server does return the full content back to the client application, but for some reason, the client is not able to receive the complete content. I am wondering if it relates to some buffer size that is not big enough for client to receive full returns. Thanks, Jan-fon -----Original Message----- From: Amir Mousavizadegan [mailto:[hidden email]] Sent: Friday, February 19, 2010 6:20 AM To: Apache AXIS C User List Subject: Re: Client API problem For your first question, it seems to me you are losing a socket connection or timeout on the connection to server, check your network. For your second problem, it may be is related to drop of socket from first question. thx Amir ----- Original Message ----- From: "Fan, Jan-fon" <[hidden email]> To: "Apache AXIS C User List" <[hidden email]> Sent: Thursday, February 18, 2010 10:39 PM Subject: Client API problem Hi, I am using AXIS2C client api in my application to access web services which is developed with .NET. The way that I send my request is as below: /* Send request */ ret_node = axis2_svc_client_send_receive(svc_client, env, payload); if (ret_node) { axis2_char_t *om_str = NULL; om_str = axiom_node_to_string(ret_node, env); if (om_str) printf("\nReceived OM : %s\n", om_str); printf("\nclient invoke SUCCESSFUL!\n"); AXIS2_FREE(env->allocator, om_str); 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("client invoke FAILED!\n"); } I have 2 questions: 1. I send my requests in a loop. Inside the loop, I keep sending about 30 requests to the same web service. Sometime one or more requests would print out "client invoke FAILED". What could be the reason that causes this problem? 2. Sometime when I print out the result from server, it only contain partial information. Really appreciate your help! Jan-fon |
I would recommend to use TCPMON utility that comes with Axis/c and
redirect the port so you can capture the payload. thx ----- Original Message ----- From: "Fan, Jan-fon" <[hidden email]> To: "Apache AXIS C User List" <[hidden email]> Sent: Saturday, February 20, 2010 5:16 AM Subject: RE: Client API problem Hi Amir, To debug the partial return problem, I use WireShark to capture the traffic/packet on the network and find out the server does return the full content back to the client application, but for some reason, the client is not able to receive the complete content. I am wondering if it relates to some buffer size that is not big enough for client to receive full returns. Thanks, Jan-fon -----Original Message----- From: Amir Mousavizadegan [mailto:[hidden email]] Sent: Friday, February 19, 2010 6:20 AM To: Apache AXIS C User List Subject: Re: Client API problem For your first question, it seems to me you are losing a socket connection or timeout on the connection to server, check your network. For your second problem, it may be is related to drop of socket from first question. thx Amir ----- Original Message ----- From: "Fan, Jan-fon" <[hidden email]> To: "Apache AXIS C User List" <[hidden email]> Sent: Thursday, February 18, 2010 10:39 PM Subject: Client API problem Hi, I am using AXIS2C client api in my application to access web services which is developed with .NET. The way that I send my request is as below: /* Send request */ ret_node = axis2_svc_client_send_receive(svc_client, env, payload); if (ret_node) { axis2_char_t *om_str = NULL; om_str = axiom_node_to_string(ret_node, env); if (om_str) printf("\nReceived OM : %s\n", om_str); printf("\nclient invoke SUCCESSFUL!\n"); AXIS2_FREE(env->allocator, om_str); 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("client invoke FAILED!\n"); } I have 2 questions: 1. I send my requests in a loop. Inside the loop, I keep sending about 30 requests to the same web service. Sometime one or more requests would print out "client invoke FAILED". What could be the reason that causes this problem? 2. Sometime when I print out the result from server, it only contain partial information. Really appreciate your help! Jan-fon |
Free forum by Nabble | Edit this page |