Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

Re: Help needed on building custom soap fault in axis2c: msg#00202

apache.webservices.axis-c.user

Subject: Re: Help needed on building custom soap fault in axis2c

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 < pappu.raghunathan-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx> 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 <pappu.raghunathan-Re5JQEeQqe8AvxtiuMwx3w@xxxxxxxxxxxxxxxx > 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

 

 
 
 



Attachment: axis2_stub_MyService.c
Description: Binary data

Attachment: axis2_svc_skel_MyService.c
Description: Binary data

---------------------------------------------------------------------
To unsubscribe, e-mail:
axis-c-user-unsubscribe-28n8OjmUYWfNLxjTenLetw@xxxxxxxxxxxxxxxx
For additional commands, e-mail:
axis-c-user-help-28n8OjmUYWfNLxjTenLetw@xxxxxxxxxxxxxxxx
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
hardware.arm.at...    cms.citadel.dev...    video.gstreamer...    java.facelets.u...    misc.basics.qna...    web.wiki.instik...    network.uip.use...    xdg.devel/2003-...    tex.bibtex.bibd...    finance.quotesp...    ietf.zeroconf/2...    redhat.blinux.g...    suse.db2/2003-0...    php.phpesp/2004...    uml.devel/2003-...    gnome.labyrinth...    qnx.openqnx.dev...    boot-loaders.gr...    db.dataperfect....    audio.audacity....    linux.uclinux.m...    editors.j.devel...    os.openbsd.tech...    kde.users.multi...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation