axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ramesh Gopal <fatuzorin2...@yahoo.com>
Subject Re: Some quick Axis2C help required
Date Tue, 04 Nov 2008 12:39:16 GMT

Hi Ssupun,

Is this a better way as per coding standards.
Or, the methodology I have been using is more effective.

In broader terms ,

Sample xml
----------
<operation>
<in1>1</in1>
<in2>2</in2>
</operation>

I will first need to get the parent element, and then all the children and loop thru it.

axiom_element_get_child_elements creates a list. And what does axiom_child_element_iterator_has_next
do ?

Keeping the above mentioned xml, if you can tell me in a few lines of code, which will prevent
me from running into the "Segmentation issue", it would be great.

Thanks
Ramesh.


--- On Tue, 4/11/08, Supun Kamburugamuva <supun06@gmail.com> wrote:

> From: Supun Kamburugamuva <supun06@gmail.com>
> Subject: Re: Some quick Axis2C help required
> To: "Apache AXIS C User List" <axis-c-user@ws.apache.org>, fatuzorin2001@yahoo.com
> Date: Tuesday, 4 November, 2008, 4:47 PM
> Here is a code sample for using the child element iterator.
> You can find
> this kind of code all over the axis2/C source.
> 
> axiom_child_element_iterator_t *ci = NULL;
> 
> if ((ci = axiom_element_get_child_elements(element, env,
> node)) != NULL)
> {
>         axiom_element_t *ce = NULL;
>         axiom_node_t *cn = NULL;
>         while(AXIS2_TRUE ==
> axiom_child_element_iterator_has_next(ci, env))
>         {
>             cn = axiom_child_element_iterator_next(ci,
> env);
>             /* chile element do what ever you want */
>             ce = axiom_node_get_data_element(cn, env);
> 
>         }
> }
> 
> Supun.
> 
> On Tue, Nov 4, 2008 at 3:29 PM, ramesh Gopal
> <fatuzorin2001@yahoo.com>wrote:
> 
> >
> >
> > Hi Shankar,
> >
> > Could you give me a better solution which achieves
> this ...
> >
> > Basically, I want to read all the child nodes (for a
> node) and get the
> > values.
> >
> > I have tried using axiom_element_get_child_elements or
> > axiom_element_get_children ... but in vain, simply
> because I do not know how
> > to use them ..
> >
> > I have sent you the portion of my code, pls give me
> your suggestions.
> >
> > Rgds,
> > Ramesh.
> >
> >
> > --- On Tue, 4/11/08, Uthaiyashankar
> <shankar@wso2.com> wrote:
> >
> > > From: Uthaiyashankar <shankar@wso2.com>
> > > Subject: Re: Some quick Axis2C help required
> > > To: "Apache AXIS C User List"
> <axis-c-user@ws.apache.org>
> > > Date: Tuesday, 4 November, 2008, 1:09 PM
> > > Hi Ramesh,
> > >
> > > See the comments.
> > >
> > >
> > > > Sample xml request:
> > > > -------------------
> > > >
> > > > <operation>
> > > > <in1>1</in1>
> > > > <in2>2</in2>
> > > > </operation>
> > > >
> > > > My sample code :
> > > > ----------------
> > > >
> > > > if (node) { --- This is the entire xml
> > > > parent_node =3D
> axiom_node_get_first_element(node,
> > > env); --- Here, I though=
> > > > I will get operation as the first element,
> but I get
> > > <in1>1</in1> ...
> > > >
> > >
> > > You have to do
> "axiom_node_get_data_element" to
> > > get <operation> as the
> > > element. When you do
> axiom_node_get_first_element, it will
> > > return first
> > > child whose type is om element.
> > >
> > >
> > > > If this is wrong pls point out the exact
> function that
> > > I ought to be using.
> > > >
> > > > {
> > > > if (!parent_node)
> > > > { // throw error;
> > > > }
> > > > request_node =3D
> > > axiom_node_get_first_child(parent_node, env);
> > > > if (!request_node)
> > > > { // throw error;
> > > > }
> > > > if (request_node &&
> > > axiom_node_get_node_type(request_node, env)
> =3D=3D AXIO=
> > > > M_TEXT)
> > > > { // Get value of TEXT --- Here we get value
> > > "1"
> > > > }
> > > > }
> > > > sibling_node =3D
> > > axiom_node_get_next_sibling(parent_node, env);
> --- Here I =
> > > > get <in2>2</in2>, which is a
> sibling to
> > > <in1>1</in1>
> > > >
> > > > if (!sibling_node) { // throw error ; }
> > > > request_node =3D
> > > axiom_node_get_first_child(sibling_node, env);
> > > > if (!request_node)
> > > > { // throw error;
> > > > }
> > > > if (request_node &&
> > > axiom_node_get_node_type(request_node, env)
> =3D=3D AXIO=
> > > > M_TEXT)
> > > > { // Get value of TEXT --- Here we get value
> > > "2"
> > > > }=20
> > > > }
> > > >
> > > >
> > > > I am running into some issues
> > > >
> > >
> > >  First error is caused by
> axiom_node_free_detached_subtree,
> > > which I
> > > could not find in the code you have sent. Can you
> send the
> > > correct code
> > > which causes these errors?
> > >
> > > Regards,
> > > Shankar
> > >
> > > >
> > > > Below is some error which I get :
> > > > ---------------------------------
> > > >
> > > > Program received signal SIGSEGV,
> Segmentation fault.
> > > > [Switching to Thread -1208951888 (LWP
> 19071)]
> > > > axiom_node_free_detached_subtree
> (om_node=3D0x8927758,
> > > env=3D0x8920e60)
> > > > at om_node.c:105
> > > > 105 next_sibling =3D
> child_node->next_sibling;
> > > >
> > > > #0 axiom_node_free_detached_subtree
> > > (om_node=3D0x81d9758, env=3D0x81d2e60)
> > > > at om_node.c:105
> > > > #1 0x006005a2 in
> axiom_node_free_detached_subtree
> > > (om_node=3D0x81d96d0,=20
> > > > env=3D0x81d2e60) at om_node.c:106
> > > > #2 0x006005a2 in
> axiom_node_free_detached_subtree
> > > (om_node=3D0x81d9528,=20
> > > > env=3D0x81d2e60) at om_node.c:106
> > > > #3 0x006005a2 in
> axiom_node_free_detached_subtree
> > > (om_node=3D0x81d9478,=20
> > > > env=3D0x81d2e60) at om_node.c:106
> > > > #4 0x006005a2 in
> axiom_node_free_detached_subtree
> > > (om_node=3D0x81d9198,=20
> > > > env=3D0x81d2e60) at om_node.c:106
> > > > #5 0x0060026e in axiom_document_free
> > > (document=3D0x81d50b8, env=3D0x81d2e60=
> > > > )
> > > > at om_document.c:87
> > > > #6 0x00607b6e in axiom_stax_builder_free
> > > (om_builder=3D0x81d5010, env=3D0x8=
> > > > 1d2e60)
> > > > at om_stax_builder.c:897
> > > > #7 0x0060e7ad in axiom_soap_builder_free
> > > (soap_builder=3D0x81d50d8,=20
> > > > env=3D0x81d2e60) at soap_builder.c:188
> > > > #8 0x0060dd25 in axiom_soap_envelope_free
> > > (soap_envelope=3D0x81d9338,=20
> > > > env=3D0x81d2e60) at soap_envelope.c:178
> > > > #9 0x0806b2be in axis2_msg_ctx_free
> > > (msg_ctx=3D0x81d45f8, env=3D0x81d2e60)
> > > > at msg_ctx.c:410
> > > > #10 0x00c60b43 in
> axis2_http_worker_process_request
> > > (http_worker=3D0x81d0d3=
> > > > 8,=20
> > > > env=3D0x81d2e60, svr_conn=3D0x81d2e80,
> > > simple_request=3D0x81d2f48)
> > > > at http_worker.c:1952
> > > >
> > > > Program received signal SIGSEGV,
> Segmentation fault.
> > > > [Switching to Thread -1208378448 (LWP
> 18971)]
> > > > axiom_node_create (env=3D0x20202020) at
> om_node.c:75
> > > > 75 node =3D (axiom_node_t *)
> > > AXIS2_MALLOC(env->allocator,
> sizeof(axiom_node=
> > > > _t));
> > > >
> > > > #0 axiom_node_create (env=3D0x20202020) at
> > > om_node.c:75
> > > > #1 0x00f250fa in axiom_element_create
> > > (env=3D0x20202020, parent=3D0x0,=20
> > > > localname=3D0x4e9f8c "outparam0",
> ns=3D0x0,
> > > node=3D0xb7f98f30) at om_elemen=
> > > > t.c:78
> > > > #2 0x004e9a0f in build_res_text_response ()
> > > > from
> ..//services/ws_test_demo/libws_test_demo.so
> > > > #3 0x004e99ac in
> axis2_skel_ws_test_demo_test_demo ()
> > > > from
> ..//services/ws_test_demo/libws_test_demo.so
> > > > #4 0x20202020 in ?? ()
> > > > #5 0x20202020 in ?? ()
> > > > #6 0x20202020 in ?? ()
> > > > #7 0xb7f99000 in ?? ()
> > > > #8 0x004e9b62 in
> axis2_svc_skel_ws_test_demo_invoke ()
> > > > from
> ..//services/ws_test_demo/libws_test_demo.so
> > > >
> > > >
> > > > Pls let me know, if I am missing something
> ...
> > > >
> > > > Also, pls let me know if you need more info.
> > > > I need some help on an urgent basis.
> > > >
> > > > Rgds,
> > > > Ramesh
> > > >
> > > >
> > > >       Add more friends to your messenger and
> enjoy! Go
> > > to http://messenger.yahoo.com/invite/
> > > >
> > > >
> > > >
> > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > > axis-c-user-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail:
> > > axis-c-user-help@ws.apache.org
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > S.Uthaiyashankar
> > > Software Architect
> > > WSO2 Inc.
> > > http://wso2.com/ - "The Open Source SOA
> Company"
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > > axis-c-user-unsubscribe@ws.apache.org
> > > For additional commands, e-mail:
> > > axis-c-user-help@ws.apache.org
> >
> >
> >       Share files, take polls, and make new friends -
> all under one roof.
> > Go to http://in.promos.yahoo.com/groups/
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
> axis-c-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail:
> axis-c-user-help@ws.apache.org
> >
> >
> 
> 
> -- 
> Software Engineer, WSO2 Inc
> http://wso2.org
> Web Services with Axis2/C http://wsaxc.blospot.com


      Get rid of Add-Ons in your email ID. Get yourname@rocketmail.com. Sign up now! http://in.promos.yahoo.com/address


---------------------------------------------------------------------
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