axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Liu_Edw...@emc.com
Subject RE: SOAP 1.1 Fault Handling
Date Thu, 23 Aug 2007 19:56:20 GMT
Also, sorry for not waiting for a response, but I have tried this code
as well:

axiom_soap_fault_reason_t* reason =
axiom_soap_fault_get_reason(soap_fault, env);
if (reason == NULL)
{
	printf("\nENDING...\n");
	exit(0);
}
axiom_soap_fault_text_t* reason_text =
axiom_soap_fault_reason_get_first_soap_fault_text(reason, env);
axis2_char_t* value_text = axiom_soap_fault_text_get_text(reason_text,
env);
printf("\n%s\n", value_text);

When I run this code, I always execute the if condition and exit early.
This is how I know that the axiom_soap_fault.h functions do not work for
a SOAP 1.1 fault message. 

-----Original Message-----
From: Liu_Edward@emc.com [mailto:Liu_Edward@emc.com] 
Sent: Thursday, August 23, 2007 3:53 PM
To: axis-c-user@ws.apache.org
Subject: SOAP 1.1 Fault Handling

I am having an issue handling a SOAP 1.1 fault.  So far, I am successful
up to this point:

axiom_soap_fault_t* soap_fault = axiom_soap_body_get_fault(soap_body,
env);

I next run this line:

axiom_node_t* fault_node = axiom_soap_fault_get_base_node(soap_fault,
env);

I know that this node is not empty since I can print it out using the
axiom_node_to_string function and see this example text:

<soapenv:Fault><faultcode>error</faultcode><faultstring>Error on
server</faultstring></soapenv:Fault>

Now the issue I am having is that I am trying to find some Axis2/C
library functions to parse this fault text, but I am having no luck with
this.  I have already tried parsing fault_node using
axiom_node_get_first_child and axiom_node_get_next_sibling with success.
I have tried another method to parse fault_node, but it is not working
for me and is more desirable than the first method.  When I run this
line of code:

axiom_element_t* fault_elem =
(axiom_element_t*)axiom_node_get_data_element(fault_node, env);

I find it that it is (null) when I print it out.  I would think that by
initializing fault_node, its underlying data_element should have been
set, but it is not.  Is this a bug in the library?  This is a little
digression from my initial issue, so back to that...

With the soap_fault object, I know that I can use the axiom_soap_fault.h
functions on a SOAP 1.2 object with success.  However, this library does
not have any functions for parsing a SOAP 1.1 object.  Is there a way
for me to parse the soap_fault object directly without creating a
fault_node object when the SOAP fault is SOAP 1.1?

Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org


Mime
View raw message