axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oscar Pernas <os...@pernas.es>
Subject Re: send_receive blocking
Date Tue, 26 Feb 2013 14:44:22 GMT
Hi, I think that I've solved it. To see what I'm receiving I had this code
for every response:

//xml_writer = axiom_xml_writer_create_for_memory(env, NULL, AXIS2_FALSE,
AXIS2_FALSE,
 // AXIS2_XML_PARSER_TYPE_BUFFER);
//om_output = axiom_output_create(env, xml_writer);

//if (messageNode){
// axiom_node_serialize(messageNode, env, om_output);
 //}else{
// axiom_node_serialize(genericNode, env, om_output);
 //}
//buffer = (axis2_char_t *) axiom_xml_writer_get_xml(xml_writer, env);
////AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "\nSending OM node in XML : %s
\n",
 ////                buffer);
//if (om_output){
// axiom_output_free(om_output, env);
 // om_output = NULL;
//}

After commented it, I can send more than one message, and everything seems
to go fine. Any idea of the reason?

I've given up myself in trying to get an asynchronous communication (not
blocking) working. OnError callback ends in a crash. Have anyone tested it
with trunk code? I've applied Alex Mantaut patch but doesnt work at all.

Regards



2013/2/26 Stadelmann Josef <josef.stadelmann@axa-winterthur.ch>

> Hi Oscar****
>
> what states the servers log if any created? ****
>
> you're saying that the second send() goes out, ****
>
> is it received at the servers end?****
>
> is it received at the servers method end?****
>
> if yes what does the method do with the second request? ****
>
> will it just return the payload as an echo too? ****
>
> In this case can you see the incoming second response as soap/xml data on
> the wire.****
>
> ** **
>
> Also for ease of use, unless really required, ****
>
> I would suggest to use TCP Monitor to watch the wire transfer. ****
>
> You can see much better the soap/xml traffic on the wire than with
> Wireshark.****
>
> Nothing against Wireshark, both a very OK.****
>
> Josef****
>
> ** **
>
> *Von:* Oscar Pernas [mailto:oscar@pernas.es]
> *Gesendet:* Dienstag, 26. Februar 2013 12:54
> *An:* c-user@axis.apache.org
> *Betreff:* send_receive blocking****
>
> ** **
>
> Hi all,****
>
> ** **
>
> Im using axis2c trunk version, over Windows 7, and I'm falling into a
> problem with axis2_svc_client_send_receive method.****
>
> ** **
>
> I have a class in c++ where I'm using axis2c api. I have a method init
> where I made all initializations, and a method run where I made the
> svc_client_create.****
>
> ** **
>
> The first time that I send a message, message is sent correctly and Iam
> receiving the response well. But the second time, petition is sent (I can
> see in wireshark) but I dont have any response (but is received because I
> see in wireshark), axiom node returned by send_receive is null.****
>
> ** **
>
> My code is:****
>
> ** **
>
> void send(){****
>
> ** **
>
> axiom_node_t* payload=buildWSMessage(env,message);****
>
> if (payload){****
>
>     axiom_node_t* retNode=axis2_svc_client_send_receive(svc_client, env,
> payload);****
>
>             if (retNode){****
>
>                 extractAndSend(retNode);****
>
>             }****
>
> }****
>
> }****
>
> ** **
>
> Im only calling init() and run() one time, and after that I am allways
> calling to this send method. What should I do if i want to use the previous
> method twice? shoud I have to free some structures of svc_client? any help
> would be appreciated!****
>
> ** **
>
> regards****
>
> ** **
>
> --
> Óscar Pernas Plaza. ****
>



-- 
Óscar Pernas Plaza.

Mime
View raw message