axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Subra A Narayanan" <aswat...@gmail.com>
Subject Re: SOAP fault builder
Date Fri, 17 Aug 2007 21:45:04 GMT
Hey Nandika,

So I tried your suggestion but I have a doubt. I am just modifying the
'math' webservice from the samples folder.

The 'add' operation returns a axiom_node_t * on success, which is nothing
but the soap message. But I want to return a soap fault from the
'add'operation if lets say one of the parameters was missing from the
request or
it was a decimal number. If I follow what you asked me to do, what do I
return from the add function? I have to return a axiom_node_t *? But from
your email I thought you meant that if I set the soap fault to the message
context, the soap fault will automatically be returned to the client. I dont
understand how do I stop further processing and return a soap fault to the
client.

So I did some further digging in to the axis code and found this function in
axiom_soap_envelope.h:

 AXIS2_EXTERN axiom_node_t* AXIS2_CALL
axiom_soap_envelope_get_base_node(axiom_soap_envelope_t *envelope,
constaxutil_env_t *env);


so this gives me access to the soap fault message as a axiom_node_t*. And
upon error in the 'add' operation, I just return it to the client. Is this
the right way to do it? I am missing something here.

Now one more important thing. When I call axiom_soap_envelope_get_base_node,
it seems to returning a soap1.2 fault message rather than a soap1.1 message
even though I set *

*soapVersion = AXIOM_SOAP11;

Why is that? Is there a way to get soap1.1 fault message?


I hope my questions are clear. Thanks so much for your help!


Subra



On 8/17/07, Subra A Narayanan <aswathsn@gmail.com> wrote:
>
> Thanks Nandika. I will give it a shot.
>
> Have a good weekend!
>
> On 8/17/07, Nandika Jayawardana <jayawark@gmail.com > wrote:
> >
> > Hi Subra,
> >
> > You can create a soap11 fault using following lines.
> >
> > int soap_version = AXIOM_SOAP11;
> >
> > soap_envelope = axiom_soap_envelope_create_default_soap_envelope (env,
> > soap_version);
> >
> > soap_body = axiom_soap_envelope_get_body(soap_envelope, env);
> >
> > soap_fault = axiom_soap_fault_create_default_fault (env,
> > soap_body, "fault code" , "fault reason"
> > , soap_version);
> >
> > axis2_msg_ctx_set_fault_soap_envelope(msg_ctx, env, soap_envelope);
> >
> > You can set the fault to the msg_ctx and it will be returned to the
> > client.
> >
> > Regards
> >
> > Nandika
> >
> >
> >
> > On 8/17/07, Subra A Narayanan <aswathsn@gmail.com > wrote:
> > >
> > > Hello folks,
> > >
> > > I am trying ti build a SOAP1.1 fault and return to the ws client. I am
> > > having some difficulty understanding how to go about this. I have tryng to
> > > dig through the source code but was wondering if you guys have some sample
> > > code. If you have it that would be very helpful in understanding the usage.
> > >
> > > In the meantime I will continue to dig through the source code to try
> > > to understand.
> > >
> > > Thanks as usual!
> > >
> > > Subra
> > >
> >
> >
> >
> > --
> > nandika@wso2.com
> > WSO2 Inc: http://www.wso2.com
>
>
>

Mime
View raw message