I didn't see you have attached the request envelope in the early
mail.. Sorry for bothering you with the early mail.

Anyway replace the "%Lf" to "%lf" and check again.

"%Lf" should be the reason for the memory corruption as well.

Thanks
Dimuthu

On Feb 1, 2008 11:42 PM, Zhang, Wayne (IT)
<[EMAIL PROTECTED]> wrote:
> Hi Dimuthu,
>
> I added the debug printf and here is the new output:
>
> Started Simple Axis2 HTTP Server ...
> in axis2_svc_skel_CalculatorService_invoke(), content_node is:
> <n:Arithmetic
> xmlns:n="http://xml.ms.com/ns/msjava/cxfutils/examples/calculator";><n:Nu
> m1>50.000000</n:Num1><n:Num2>20.000000</n:Num2></n:Arithmetic>



>
> in axis2_skel_CalculatorService_Arithmetic()!
> num1=0.000000, num2=0.000000
> exiting axis2_skel_CalculatorService_Arithmetic()...
> Segmentation fault (core dumped)
>
> It's possible that "divide-by-zero" causes the memory corruption, but if
> num1 and num2 were deserialized correctly I won't run into this problem.
>
> Thanks,
>
> Wayne Zhang
> Morgan Stanley | Technology
> 750 Seventh Avenue, 12th Floor | New York, NY  10019
> Phone: +1 212 762-1943
> [EMAIL PROTECTED]
>
>
> >-----Original Message-----
> >From: Dimuthu Gamage [mailto:[EMAIL PROTECTED]
>
> >Sent: Friday, February 01, 2008 12:56 PM
> >To: Apache AXIS C User List
> >Subject: Re: Questions/suggestions on WSDL2C
> >
> >Hi,
> >
> >Looking at your gdb.txt, i feel that there is a memory
> >corruption somewhere.. because parent_tag_closed is supposed
> >to have value 1, but it have some junk value. Although I m not
> >sure one reason can be you are doing  0/0 kind of operation,
> >That is just a guess.
> >
> >If that so, can you check whether the request message have
> >come correctly?. you can do that by installing tcpmon [1].  or
> >adding following code in the start of
> >axis2_svc_skel_CalculatorService_invoke
> >function in the axis2_svc_skel_CalculatorService.c file.
> >
> >printf("%s\n", axiom_node_to_string(content_node, env));
> >
> >
> >[1] http://xml.ms.com/ns/msjava/cxfutils/examples/calculator
> >
> >Thanks
> >Dimuthu
> >
> >On Feb 1, 2008 10:31 PM, Zhang, Wayne (IT)
> ><[EMAIL PROTECTED]> wrote:
> >> Hi Dimuthu,
> >>
> >> I followed your instructions and was able to build my
> >client, so many
> >> thanks on that.  However, my client is crashing the server now
> >> (SIGSEGV) and as far as I can tell the request looks valid.  I have
> >> attached the client request, the server log, my
> >implementation of the
> >> server handler
> >> (axis2_skel_CalculatorService.c) and gdb back trace from the
> >core file
> >> to this mail.  Below are my server's debug statements before
> >the crash:
> >>
> >>
> >> Started Simple Axis2 HTTP Server ...
> >> in axis2_skel_CalculatorService_Arithmetic()!
> >> num1=0.000000, num2=0.000000
> >> exiting axis2_skel_CalculatorService_Arithmetic()...
> >> Segmentation fault (core dumped)
> >>
> >>
> >> As you see, num1 and num2 are parsed wrong (I expected 50.000000 and
> >> 20.000000), so it seems axis2 is having trouble deserializing the
> >> arguments from the request message.  Please advise on how I should
> >> debug the server.
> >>
> >> Thanks,
> >>
> >> Wayne
> >>
> >>
> >> >-----Original Message-----
> >> >From: Dimuthu Gamage [mailto:[EMAIL PROTECTED]
> >>
> >> >Sent: Thursday, January 31, 2008 5:44 PM
> >> >To: Apache AXIS C User List
> >> >Subject: Re: Questions/suggestions on WSDL2C
> >> >
> >> >Hi Zhang,
> >> >Please see my inline comment to the code..
> >> >
> >> >On Feb 1, 2008 1:30 AM, Zhang, Wayne (IT)
> >> ><[EMAIL PROTECTED]> wrote:
> >> >> Hi,
> >> >>
> >> >> Thanks to all for your quick responses.  I think a simple
> >> >demo client
> >> >> (with useful inlined comments explaining what a user should do)
> >> >> will fit my need.  WRT makefile generation, I understand
> >it's hard
> >> >> to auto-generate one that works perfectly in  _all_ projects, but
> >> >> it might be helpful to create a makefile.template kind of thing
> >> >to set up
> >> >> all the basic stuff (required defines, libs, include paths,
> >> >libpaths,
> >> >> etc) and let the users add their stuff on top of it.
> >> >>
> >> >> Now back to the problems I encountered with the client.  (I
> >> >apologize
> >> >> for the following long copy-and-paste text, please tell me
> >> >the proper
> >> >> way if this is not recommended).  WSDL2C generates the following
> >> >> header code but I'm not sure what to do with each
> >function (see my
> >> >> inlined
> >> >> questions):
> >> >>
> >> >>
> >> >>   /***************** function prototypes - for header file
> >> >> *************/
> >> >>   /**
> >> >>    * axis2_stub_create_CalculatorService
> >> >>    * Create and return the stub with services populated
> >> >>    * @param env Environment ( mandatory)
> >> >>    * @param client_home Axis2/C home ( mandatory )
> >> >>    * @param endpoint_uri Service endpoint uri( optional )
> >- if NULL
> >> >> default picked from WSDL used
> >> >>    * @return Newly created stub object
> >> >>    */
> >> >>   axis2_stub_t*
> >> >>   axis2_stub_create_CalculatorService(const axutil_env_t *env,
> >> >>       axis2_char_t *client_home,
> >> >>       axis2_char_t *endpoint_uri);
> >> >>   // wz: I looked at the math example source and thought
> >> >>   // this function should correspond to axis2_math_stub.c's
> >> >> axis2_math_stub_create_with_endpoint_uri_and_client_home()?
> >> >
> >> >Yea, It is exactly the same..
> >> >>
> >> >>   /**
> >> >>    * axis2_stub_populate_services_for_CalculatorService
> >> >>    * populate the svc in stub with the service and operations
> >> >>    * @param stub The stub
> >> >>    * @param env environment ( mandatory)
> >> >>    */
> >> >>   void axis2_stub_populate_services_for_CalculatorService(
> >> >> axis2_stub_t *stub, const axutil_env_t *env);
> >> >>   // wz: implement it a la axis2_math_stub.c's
> >> >> axis2_populate_axis_service()?
> >> >
> >> >Yea that also do the same functionality.
> >> >>
> >> >>
> >> >>   /**
> >> >>    * axis2_stub_get_endpoint_uri_of_CalculatorService
> >> >>    * Return the endpoint URI picked from WSDL
> >> >>    * @param env environment ( mandatory)
> >> >>    * @return The endpoint picked from WSDL
> >> >>    */
> >> >>   axis2_char_t *
> >> >>   axis2_stub_get_endpoint_uri_of_CalculatorService(const
> >> >axutil_env_t
> >> >> *env);
> >> >>   // wz: no question here
> >> >>
> >> >>
> >> >>   /**
> >> >>    * Auto generated function declaration
> >> >>    * for
> >> >>
> >"Arithmetic|http://xml.ms.com/ns/msjava/cxfutils/examples/calculator";
> >> >> operation.
> >> >>    * @param stub The stub (axis2_stub_t)
> >> >>    * @param env environment ( mandatory)
> >> >>
> >> >>    * @param _arithmetic
> >> >>    * return
> >> >>      adb_ArithmeticResponse_t*
> >> >>    */
> >> >>
> >> >>   adb_ArithmeticResponse_t*
> >> >>   axis2_stub_op_CalculatorService_Arithmetic( axis2_stub_t *stub,
> >> >> const axutil_env_t *env,
> >> >>       adb_Arithmetic_t* _arithmetic);
> >> >>   // wz: how should this function extract input parameters from
> >> >> _arithmetic and send them to the server?
> >> >
> >> >HI I suppose you have adb_Arithemetic.h/.c is generated
> >with you.. If
> >> >not you may have missed the -u in code generation.
> >> >i.e. retry with WSD2C.sh -uri your.wsdl -u.
> >> >
> >> >Then the adb_Arithetic.h will have create function and several
> >> >setters and getters. You can use these functions to feed data to
> >> >adb_Arithematic object. The same with adb_Arithematic_Response
> >> >
> >> > I.e. your code will  look something like
> >> >
> >> >adb_Arithematic_t * ar;
> >> >adb_Arithematic_Response_t * ares;
> >> >
> >> >ar = adb_Arithematic_set_someVar(ar, env, 5); //here someVar should
> >> >be replaced with actual fields
> >> >
> >> >ares = axis2_stub_op_CalculatorService_Arithmetic(stuv, env, ar);
> >> >
> >> >int i = adb_Arithematic_Response_get_anotherVar(ares, env);
> >> >
> >> >
> >> >You can have a good idea on how to manipulate these adb object from
> >> >the "samples/codegen/client/calculator/test_calculator.c"
> >> >sample in the axis2/c pack.
> >> >
> >> >
> >> >>
> >> >>
> >> >>   /**
> >> >>    * Auto generated function declaration
> >> >>    * for
> >> >>
> >"Arithmetic|http://xml.ms.com/ns/msjava/cxfutils/examples/calculator";
> >> >> operation.
> >> >>    * @param stub The stub
> >> >>    * @param env environment ( mandatory)
> >> >>
> >> >>    * @param _arithmetic
> >> >>    * @param user_data user data to be accessed by the callbacks
> >> >>    * @param on_complete callback to handle on complete
> >> >>    * @param on_error callback to handle on error
> >> >>    */
> >> >>
> >> >>
> >> >>
> >> >>   void axis2_stub_start_op_CalculatorService_Arithmetic(
> >> >axis2_stub_t
> >> >> *stub, const axutil_env_t *env,
> >> >>       adb_Arithmetic_t* _arithmetic,
> >> >>       void *user_data,
> >> >>       axis2_status_t ( AXIS2_CALL *on_complete ) (const
> >> >> axutil_env_t *,
> >> >> adb_ArithmeticResponse_t* _arithmeticResponse, void *data) ,
> >> >>       axis2_status_t ( AXIS2_CALL *on_error ) (const axutil_env_t
> >> >> *, int exception, void *data) );
> >> >>   // wz: is this the asynchronous version of
> >> >> axis2_stub_op_CalculatorService_Arithmetic()?  What do I do
> >> >with data?
> >> >
> >> >Oops! we have missed to mention this is async in the doc comment.
> >> >(anway it is mentioned in the corrosponding .c file). I
> >will correct
> >> >that in the template.
> >> >
> >> >Yea this is async. The data is optional user data that can to be
> >> >passed to the callback..  IN the callback function
> >prototype we have
> >> >the data as the argument. This will be really useful to the user to
> >> >just parse the context to the callback.
> >> >
> >> >Thanks
> >> >Dimuthu
> >> >
> >> >>
> >> >>
> >> >> Thanks,
> >> >>
> >> >> Wayne Zhang
> >> >> Morgan Stanley | Technology
> >> >> [EMAIL PROTECTED]
> >> >>
> >> >>
> >> >>
> >> >> >-----Original Message-----
> >> >> >From: Dimuthu Gamage [mailto:[EMAIL PROTECTED]
> >> >> >Sent: Wednesday, January 30, 2008 10:29 PM
> >> >> >To: Apache AXIS C User List
> >> >> >Subject: Re: Questions/suggestions on WSDL2C
> >> >> >
> >> >> >Please see my inline comment.
> >> >> >
> >> >> >On Jan 31, 2008 8:07 AM, Samisa Abeysinghe
> ><[EMAIL PROTECTED]> wrote:
> >> >> >> Dimuthu Gamage wrote:
> >> >> >> > Hi Zhang,
> >> >> >> >
> >> >> >> > Thanks for your suggestions.
> >> >> >> >
> >> >> >> > 1). In fact generating a demo client is a good idea. I
> >> >> >will look in to that.
> >> >> >> > For the time being, I'm using a ruby script to
> >generate simple
> >> >> >> > demonstrations for stub and skels (it automatically
> >> >> >generates simple
> >> >> >> > logic with adb), if you find useful you can check it from
> >> >> >> >
> >> >http://people.apache.org/~dimuthu/leisure/23_oct/generate_demos.rb.
> >> >> >> >
> >> >> >>
> >> >> >> When there are so many operations, with complex params,
> >> >how are we
> >> >> >> supposed to generate a demo client?
> >> >> >
> >> >> >I think what we can provide is empty functions (with empty
> >> >> >logic) as in server side. The adb object manipulation should be
> >> >> >anyway done by the user. so we don't need to worry about complex
> >> >> >types in the demo client.. That indeed should be done by
> >the user.
> >> >> >
> >> >> >BTW the ruby script I mentioned there, recursively fills the
> >> >> >object matching pattern in the generated code.. That works only
> >> >for "in-out"
> >> >> >MEP. Anyway what we are planning to generate with WSDL2C
> >> >tool is not
> >> >> >much complicated as that.
> >> >> >
> >> >> >Thanks
> >> >> >Dimuthu
> >> >> >
> >> >> >> >
> >> >> >> > 2). If we are generating makefiles we may need to
> >think about
> >> >> >> > both linux and windows users. And we have to decide
> >whether to
> >> >> >> > use automake build system or just a simple Makefile which
> >> >> >> > sometime not OS independent. May be some build system
> >> >expert can help on this.
> >> >> >> > Sanjaya,, Any Ideas?
> >> >> >> >
> >> >> >>
> >> >> >> IMHO, automake makes things too complicated here. We can
> >> >> >just generate
> >> >> >> a simple Makefile tat could be used directly.
> >> >> >>
> >> >> >> Thanks,
> >> >> >> Samisa...
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >> > Thanks
> >> >> >> > Dimuthu
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > On Jan 31, 2008 12:18 AM, Zhang, Wayne (IT)
> >> >> >> > <[EMAIL PROTECTED]> wrote:
> >> >> >> >
> >> >> >> >>
> >> >> >> >> Hi,
> >> >> >> >>
> >> >> >> >> I just started looking at Axis2/C two days ago and it
> >> >> >looks pretty
> >> >> >> >> promising.  However I hit a snag using WSDL2C, and I
> >> >> >couldn't find
> >> >> >> >> any solutions in the mail archive, so apologies if this
> >> >> >has already
> >> >> >> >> been answered before.
> >> >> >> >>
> >> >> >> >> I am using WSDL2C to generate a simple "calculator" client
> >> >> >> >> and server.  I followed the directions in your user manual
> >> >> >> >>
> >(http://ws.apache.org/axis2/c/docs/axis2c_manual.html#wsdl2c)
> >> >> >> >> and was able to generate my client stubs and server
> >skeletons
> >> >> >successfully.
> >> >> >> >>
> >> >> >> >> Implementing the server skeleton is pretty straight
> >> >forward -- I
> >> >> >> >> just added my business logic in the /* TODO ... */ field.
> >> >> > However
> >> >> >> >> implementing the client isn't as easy.  The user manual
> >> >> >> >> simply states "To do this, go through the header files
> >> >> >> >> generated and understand the API in line with the WSDL file
> >> >> >> >> that you used to generate the code."  It will be
> >great if you
> >> >> >> >> can provide
> >> >> >a step-by-step example showing which functions to implement in
> >> >> >what files.
> >> >> >> >>
> >> >> >> >> My other suggestions are:
> >> >> >> >>
> >> >> >> >> * Can WSDL2C generate a main() for the client that sets up
> >> >> >> >> the default env/options and make required axis
> >calls such as
> >> >> >> >> axis2_endpoint_ref_create(),
> >> >> >axis2_svc_client_send_receive(), etc.
> >> >> >> >> and put
> >> >> >> >> /* TODO */ hints to prompt users to add his business logic?
> >> >> >> >>
> >> >> >> >> * It will be great if WSDL2C can also generate makefiles
> >> >> >to assist
> >> >> >> >> compiling the server and client, as well as install the
> >> >> >server in $AXIS_HOME/services.
> >> >> >> >> This will ease a user's development effort quite a bit.
> >> >> >> >>
> >> >> >> >> Many thanks in advance,
> >> >> >> >>
> >> >> >> >> Wayne Zhang
> >> >> >> >> Morgan Stanley | Technology
> >> >> >> >> 750 Seventh Avenue, 12th Floor | New York, NY  10019
> >> >> >> >> Phone: +1 212 762-1943
> >> >> >> >> [EMAIL PROTECTED]
> >> >> >> >>
> >> >> >> >>
> >> >> >> >>  ________________________________
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> NOTICE: If received in error, please destroy and
> >notify sender.
> >> >> >> >> Sender does not intend to waive confidentiality or
> >privilege.
> >> >> >> >> Use of this email is prohibited when received in error.
> >> >> >> >>
> >> >> >> >>
> >> >> >> >
> >> >> >> >
> >> >>
> >>------------------------------------------------------------------
> >> >> >--
> >> >> >> > - To unsubscribe, e-mail:
> >> >> >> > [EMAIL PROTECTED]
> >> >> >> > For additional commands, e-mail:
> >> >> >> > [EMAIL PROTECTED]
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >>
> >> >> >>
> >> >> >>
> >> >-------------------------------------------------------------------
> >> >> >> -- To unsubscribe, e-mail:
> >[EMAIL PROTECTED]
> >> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> >> >>
> >> >> >>
> >> >> >
> >> >>
> >>
> >>>--------------------------------------------------------------------
> >> >>-
> >> >> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >> >> >
> >> >> >
> >> >> --------------------------------------------------------
> >> >>
> >> >> NOTICE: If received in error, please destroy and notify
> >> >sender. Sender does not intend to waive confidentiality or
> >privilege.
> >> >Use of this email is prohibited when received in error.
> >> >>
> >> >>
> >-------------------------------------------------------------------
> >> >> -- To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> >>
> >> >>
> >> >
> >>
> >>---------------------------------------------------------------------
> >> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >> >
> >> >
> >> --------------------------------------------------------
> >>
> >> NOTICE: If received in error, please destroy and notify
> >sender. Sender does not intend to waive confidentiality or
> >privilege. Use of this email is prohibited when received in error.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> --------------------------------------------------------
>
> NOTICE: If received in error, please destroy and notify sender. Sender does 
> not intend to waive confidentiality or privilege. Use of this email is 
> prohibited when received in error.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to