Any help is greatly appreciated.
Subra
On 10/1/07, *Dimuthu Gamage* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> > wrote:
Hi Sathya,
Please check the attachment. This tries to use custom error codes.
(mostly follow the way Sandhesha/C is using their custom error
messages)
Anyway still functions like "axutil_error_get_message" are too
inflexible to work with custom error codes. So we need to define
our version of the same function.
Thanks
Dimuthu
On 10/1/07, *Sathya Raghunathan* < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
If i have build a soap fault based on an error code, should i
create a global variable in axutil_error_init() function? Can
i make use of the axutil_error_messages array?
Thanks
Sathya
On 9/29/07, *Dimuthu Gamage* < [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
HI Sathya,
you can follow the attachments. I didnt test it, but it
may give some hints to do your work.
If you want to build a soap fault base on an error code,
you need to keep a global variable to keep the error code
and build the soap exception based on that.
So It is clear we should have a better mechanism than this
to do that, I think there was a discussion earlier in the
same topic in the list sometime ago. We should quickly
figure out a good way to do this and fix the code
generation templates.
Thanks
Dimuthu
/*axiom_element_set_text(error_ele, env,
adb_MyFirstException_get_text(_MyFirstException,env),
error_node); */
/** instead use following */
another_node =
adb_MyFirstException_serialize(_MyFirstException, env,
NULL, AXIS2_FALSE);
axiom_node_add_child(error_node, env, another_node);
IN the client side axis2_stub_MyService.c should be
changed like following.
ret_node = axis2_svc_client_send_receive_with_op_qname(
svc_client, env, op_qname, payload);
/** Just before this line, add following */
if(ret_node && axiom_node_get_data_element(
ret_node, env) &&
axutil_strcmp("fault",
axiom_element_get_localname((axiom_element_t
*)axiom_node_get_data_element( ret_node, env), env)))
{
/** adb_MyFirstException_t*
_MyFirstException should be declared */
_MyFirstException =
adb_MyFirstException_create(env);
adb_MyFirstException_deserialize(_MyFirstException, env,
axiom_node_get_first_child( ret_node));
/** so you have the same _MyFirstException
you created at
* onfault is here, just do the processing
at here manually */
}
On 9/29/07, *Sathya Raghunathan* <
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
If you just check the
axis2_svc_skel_MyService_on_fault() in the attached
file, please let me know if i have modified it
correctly or not. Is this the way to do? If i test
that out, the server crashes. If i comment out the
object myfirstexception from it, i can see that a
fault element is set in the output with some message
that i hardcoded there.
Please guide me with the proper step
of building the
custom fault in that function.
Thanks
Sathya
On 9/29/07, *Sathya Raghunathan*
<[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
Hi Dimuthu,
Do you have any example
custom soap fault wsdl? I
am not clear with this concept I tried a new
example, since you found some problems with my
last wsdl file. I have attached the wsdl file. In
that, there is one myOperationRequest which is a
string, and a myOperationResponse which is also a
string. There are two custom faults here,
MyFirstException and MySecondException. With this
wsdl, the service function that was generated was
as below:
adb_myOperationResponse_t*
axis2_skel_MyService_myOperation (const
axutil_env_t *env ,
adb_myOperation_t* myOperation )
{
adb_myOperationResponse_t *myResponse;
/* TODO fill this with the necessary
business logic */
axis2_char_t *myInpMsg =
adb_myOperation_get_myInput(myOperation,env);
printf("My input message =
%s\n",myInpMsg);
if (strcmp(myInpMsg,"Bad
server")==0)
{
//What is the way to throw
the exception here?
return NULL;
}
// Assuming the myResponse object is
created
return myResponse;
}
You have told me to modify the
axis2_svc_skel_MyService_on_fault() function to
build custom faults. Does that mean that i have to
create an object of myFirstException inside that?
Should the service function just return NULL?
Suppose i call a function that has some business
logic that return error code inside
axis2_skel_MyService_myOperation, and i want to
throw an exception (with an error message) based
on that error code, how exactly should i do it?
Can you help me out?
Thanks
Sathya
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>