axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From alebu <ale...@gmail.com>
Subject Re: Writing web services with C++
Date Thu, 24 Apr 2008 12:58:15 GMT
Well, it may be considered as a bug of codegenerator. I don't see a reasons
not to put C++ protectoting macros into templates of WSDL2C utility. Maybe I
missing something, but I think, that is it works them why not to put it
there :)

On Thu, Apr 24, 2008 at 2:52 PM, Samisa Abeysinghe <samisa@wso2.com> wrote:

> alebu wrote:
>
> > Ha! OK people, I think we (I mean mailing list) solved the problem!
> >
>
> Cool :)
>
>  I put:
> > #ifdef __cplusplus extern "C"
> > {
> > #endif
> > //CODE
> > #ifdef __cplusplus
> > }
> > #endif
> > into axis2_svc_skel_<myservicename>.c file (no need to wrap all code)
> > and it start working!
> > Thanks all for help and hope that this thread will be useful to other
> > people to.
> >
>
> We need to document this somewhere. People using C++ seem to run into this
> problem time to time, and this is a well known problem.
>
> May be we should add a q to FAQ "Why doesn't my C++ service work?"
>
> Samisa...
>
>
> > On Thu, Apr 24, 2008 at 12:52 PM, Samisa Abeysinghe <samisa@wso2.com<mailto:
> > samisa@wso2.com>> wrote:
> >
> >    Is it possible to send in the code you are using to help debug
> >    this situation.
> >
> >    Samisa...
> >
> >
> >    Manjula Peiris wrote:
> >
> >        Alebu,
> >
> >        Can you put those generated code inside #ifndef __cplusplus...
> >        declaration and try. I mean not only headers but also the
> >        implementation
> >        inside one #ifndef __cplusplus... block. Since you are using
> >        g++ as the
> >        compiler this may solve the problem. Because WSDL2C tool may
> >        be assuming
> >        that default compiler is gcc.
> >
> >        Thanks,
> >        -Manjula.
> >
> >
> >        On Thu, 2008-04-24 at 11:51 +0200, alebu wrote:
> >
> >            I only had one additional function and it is declared (in
> >            header file)
> >            in suggested #ifndef __cplusplus...
> >            I even removed it and all calls to it (only one call
> >            actually), but
> >            result is the same.
> >            All other code is generated with WSDL2C utility. There was
> >            problems
> >            with it too (there is a thread about it),
> >            but they was solved. So code is purely generated by WSDL2C.
> >            When I turn on linker option "do not use default
> >            libraties" (-nodefaultlibs)
> >            Segmentaion Fault turned into SOAP response:
> >
> >            <soapenv:Envelope
> >            xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> >              <soapenv:Header/>
> >              <soapenv:Body>
> >                 <soapenv:Fault>
> >                    <faultcode>soapenv:Server</faultcode>
> >                    <faultstring>Failed in creating DLL</faultstring>
> >                 </soapenv:Fault>
> >              </soapenv:Body>
> >            </soapenv:Envelope>
> >
> >            And in logs/axis2.log I have naow:
> >            [Thu Apr 24 12:42:36 2008] [debug] req_uri_disp.c(100)
> >            Checking for
> >            service using target endpoint address :
> >            http://127.0.0.1:9090/axis2/services/uniservice
> >            [Thu Apr 24 12:42:36 2008] [debug] req_uri_disp.c(121)
> >            Service found
> >            using target endpoint address
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            AddressingInHandler within the phase Transport
> >            [Thu Apr 24 12:42:36 2008] [info]  Starting addressing in
> >            handler
> >            [Thu Apr 24 12:42:36 2008] [info]  addr_in_handler.c
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            addressing_based_dispatcher within the phase Transport
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            rest_dispatcher within the phase Dispatch
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            soap_message_body_based_dispatcher within the phase Dispatch
> >            [Thu Apr 24 12:42:36 2008] [debug] soap_body_disp.c(231)
> >            Checking for
> >            operation using SOAP messagebody's first child's local
> >            name : serve
> >            [Thu Apr 24 12:42:36 2008] [debug] soap_body_disp.c(240)
> >            Operation
> >            found using SOAP message body's first child's local name
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            soap_action_based_dispatcher within the phase Dispatch
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            dispatch_post_conditions_evaluator within the phase
> >            PostDispatch
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            context_handler within the phase PostDispatch
> >            [Thu Apr 24 12:42:36 2008] [warning] op.c(1149) Message id
> >            not found
> >            for message context while registering operation context
> >            for operation
> >            serve
> >            [Thu Apr 24 12:42:36 2008] [error] class_loader.c(161)
> > dlerror
> >            reason: ..//services/uniservice/libuniservice.so:
> >            undefined symbol:
> >            __gxx_personality_v0
> >            [Thu Apr 24 12:42:36 2008] [error]
> >            raw_xml_in_out_msg_recv.c(115) Impl
> >            object for service 'uniservice' not set in message
> >            receiver. 101 ::
> >            Failed in creating DLL
> >            [Thu Apr 24 12:42:36 2008] [debug] phase.c(210) Invoke the
> >            handler
> >            AddressingOutHandler within the phase MessageOut
> >            [Thu Apr 24 12:42:36 2008] [info]  Starting addressing out
> >            handler
> >            [Thu Apr 24 12:42:36 2008] [debug] addr_out_handler.c(133)
> >            No action
> >            present. Stop processing addressing
> >            [Thu Apr 24 12:42:36 2008] [info]  Request served in 0.123
> >            seconds
> >            [Thu Apr 24 12:45:15 2008] [info]  Received signal SIGINT.
> >            Server
> >            shutting down
> >            [Thu Apr 24 12:45:15 2008] [info]  Terminating HTTP server
> >            thread
> >            [Thu Apr 24 12:45:15 2008] [debug] http_svr_thread.c(181)
> >            Terminating
> >            HTTP server thread.
> >            [Thu Apr 24 12:45:15 2008] [info]  Successfully terminated
> >             HTTP
> >            server thread
> >            [Thu Apr 24 12:45:15 2008] [info]  Shutdown complete ...
> >
> >
> >            On Thu, Apr 24, 2008 at 10:40 AM, Manjula Peiris
> >            <manjula@wso2.com <mailto:manjula@wso2.com>>
> >
> >            wrote:
> >                   Hi Alebu,
> >                           The segfault comes from
> >            AXIS2_SVC_SKELETON_INIT macro. So this
> >                   is
> >                   because when calling your svc_skeleton_init
> >            function. Since
> >                   you are
> >                   using g++ and given that it worked for gcc the only
> >            reason I
> >                   can think
> >                   of is missing,
> >                   #ifdef __cplusplus
> >                                   extern "C" {
> >                                   #endif
> >                                   declaration. Since you have that
> >            already there I can't think
> >                   of any
> >                   valid reason from the provided details. So in order
> >            to analyze
> >                   further
> >                   can you send us your web services code.
> >                           Thanks,
> >                   -Manjula.
> >                                   On Thu, 2008-04-24 at 10:02 +0200,
> >            alebu wrote:
> >                   > With 1.3.1-RC2 situation is the same... :(
> >                   >
> >                   > On Thu, Apr 24, 2008 at 8:53 AM, alebu
> >            <aleboo@gmail.com <mailto:aleboo@gmail.com>>
> >
> >                   wrote:
> >                   >         Hmm, don't know if that what you need
> >            (based on
> >                   axis2c-1.3.0
> >                   >         code):
> >                   >
> >                   >         Program terminated with signal 11,
> >            Segmentation
> >                   fault.
> >                   >         #0  0x746163696c707061 in ?? ()
> >                   >         (gdb) backtrace
> >                   >         #0  0x746163696c707061 in ?? ()
> >                   >         #1  0x00002b960f68a0db in
> >                   axis2_msg_recv_make_new_svc_obj
> >                   >         (msg_recv=<value optimized out>,
> >            env=0x676310,
> >                   msg_ctx=<value
> >                   >         optimized out>)
> >                   >             at msg_recv.c:166
> >                   >         #2  0x00002b960f68a579 in
> >                   >
> >
> > axis2_raw_xml_in_out_msg_recv_invoke_business_logic_sync
> >                   >         (msg_recv=0x674650, env=0x676310,
> >            msg_ctx=0x676ff0,
> >                   >             new_msg_ctx=0x6829b0) at
> >                   raw_xml_in_out_msg_recv.c:99
> >                   >         #3  0x00002b960f68a2b1 in
> >                   axis2_msg_recv_receive_impl
> >                   >         (msg_recv=0x674650, env=0x676310,
> >            msg_ctx=0x676ff0,
> >                   >             callback_recv_param=<value optimized
> >            out>) at
> >                   >         msg_recv.c:319
> >                   >         #4  0x00002b960f681a75 in
> >            axis2_engine_receive
> >                   >         (engine=0x6803c0, env=0x676310,
> >            msg_ctx=0x676ff0) at
> >                   >         engine.c:297
> >                   >         #5  0x00002b960f557542 in
> >                   >
> >  axis2_http_transport_utils_process_http_post_request
> >                   >         (env=0x676310, msg_ctx=0x676ff0,
> >                   >             in_stream=<value optimized out>,
> >                   out_stream=<value
> >                   >         optimized out>, content_type=0x676530
> >                   >         "text/xml;charset=UTF-8",
> >                   >             content_length=<value optimized out>,
> >                   >         soap_action_header=0x677650,
> >                   >             request_uri=0x6773c0
> >                   >                    "
> > http://127.0.0.1:9090/axis2/services/uniservice")
> >                   at
> >                   >         http_transport_utils.c:583
> >                   >         #6  0x00002b960f55587e in
> >                   axis2_http_worker_process_request
> >                   >         (http_worker=0x676190, env=0x676310,
> >                   svr_conn=0x676350,
> >                   >             simple_request=0x676490) at
> >            http_worker.c:400
> >                   >         #7  0x00002b960f8cd26e in
> >                   axis2_svr_thread_worker_func
> >                   >         (thd=0x676160, data=0x674c20) at
> >                   http_svr_thread.c:254
> >                   >         #8  0x00002b960faf6143 in start_thread ()
> >                   >         from /lib64/libpthread.so.0
> >                   >         #9  0x00002b960fedf74d in clone ()
> >                   from /lib64/libc.so.6
> >                   >         #10 0x0000000000000000 in ?? ()
> >                   >         ------------
> >                   >         I will try the same with 1.3.1-RC2 now
> >                   >
> >                   >
> >                   >
> >                   >         On Wed, Apr 23, 2008 at 10:09 AM, Manjula
> >            Peiris
> >                   >         <manjula@wso2.com
> >            <mailto:manjula@wso2.com>> wrote:
> >                   >                 Hi alebu,
> >                   >
> >                   >                 If it segfaults can you send us
> >            the gdb
> >                   backtrace ?
> >                   >                 BTW, another RC of
> >                   >                 1.3.1 will be available soon.
> >                   >
> >                   >                 Thanks,
> >                   >                 -Manjula.
> >                   >
> >                   >
> >                   >
> >                   >                 On Wed, 2008-04-23 at 09:55
> >            +0200, alebu
> >                   wrote:
> >                   >                 > Link to 1.3.1 you gave is
> >            broken for me.
> >                   >                 > Now I got slightly different
> >            problem.
> >                   >                 > After compiling using g++ for
> >            compiler and
> >                   linker
> >                   >                 (probably i was
> >                   >                 > using gcc/g++ earlier and thats
> >            was the
> >                   problem)
> >                   >                 > I simply have segmentaion fault
> >            before any
> >                   of my
> >                   >                 custom code is
> >                   >                 > executed. First row of
> >            generated with
> >                   WSDL2C invoke
> >                   >                 > method was logging function and
> >            it is not
> >                   executed.
> >                   >                 So, as I
> >                   >                 > understand, problem occurs
> >            somewhere
> >                   before invoke
> >                   >                 call.
> >                   >                 > Compiling the same code with
> >            the same
> >                   parameters but
> >                   >                 using gcc works
> >                   >                 > fine. I should mention that
> >            code in both
> >                   cases is
> >                   >                 > C code. All declarations are
> >            covered with
> >                   >                 > #ifdef __cplusplus
> >                   >                 > extern "C" {
> >                   >                 > #endif
> >                   >                 > //code
> >                   >                 > #ifdef __cplusplus
> >                   >                 > }
> >                   >                 > #endif
> >                   >                 > In axis2c logs last LIVE line is:
> >                   >                 > engine.c(670)
> >                   End:axis2_engine_invoke_phases
> >                   >                 > engine.c(648)
> >                   Start:axis2_engine_invoke_phases
> >                   >                 > engine.c(670)
> >                   End:axis2_engine_invoke_phases
> >                   >                 > class_loader.c(140) Object loaded
> >                   successfully
> >                   >                 > ... and no any error messages
> >                   >                 >
> >                   >                 > Any ideas? I could try the same
> >            with
> >                   axis2c 1.3.1
> >                   >                 but I need a link to
> >                   >                 > it (on website only 1.3.0 is
> >            available)
> >                   >                 > Compiler options are (fragment
> > from
> >                   Eclipse/C log):
> >                   >                 > Invoking: GCC C Compiler
> >                   >                 > g++
> >                   -I/opt/axis2c-1.3.0/include/axis2-1.3.0 -O0 -g3
> >                   >                 -Wall -c
> >                   >                 > -fmessage-length=0 -fPIC -MMD -MP
> >                   >                 -MF"src/adb_field_type.d"
> >                   >                 > -MT"src/adb_field_type.d"
> >                   -o"src/adb_field_type.o"
> >                   >                 >
> >                   >                 > And linking log part is:
> >                   >                 > Invoking: GCC C Linker
> >                   >                 > g++ -L/opt/axis2c-1.3.0/lib
> >                   >                 -L/home/BEA/tuxedo9.1/lib -shared
> >                   >                 > -o"libmyservice.so"
> >                   >
> >                    ./src/adb_field_type.o ./src/adb_serve.o
> >            ./src/adb_serveResponse.o ./src/adb_serve_req_type.o
> >            ./src/adb_serve_resp_type.o ./src/axis2_skel_uniservice.o
> >            ./src/axis2_svc_skel_uniservice.o   -ldl -lbuft -lfml
> >            -lfml32 -lengine -ltux -lpthread -laxutil -laxis2_axiom
> >            -laxis2_engine -laxis2_parser -laxis2_http_sender
> >            -laxis2_http_receiver -laxis2_libxml2
> >                   >                 >
> >                   >                 > Some additional libraries
> >            relative to BEA
> >                   Tuxedo are
> >                   >                 included, but I
> >                   >                 > don't think that they are the
> >            problem.
> >                   >                 >
> >                   >                 >
> >                   >                 > On Mon, Apr 14, 2008 at 4:08
> >            PM, Samisa
> >                   Abeysinghe
> >                   >                 <samisa@wso2.com
> >            <mailto:samisa@wso2.com>>
> >                   >                 > wrote:
> >                   >                 >         What are the compiler
> >            options you
> >                   used when
> >                   >                 compiling the
> >                   >                 >         service?
> >                   >                 >
> >                   >                 >         We have added the
> >            dlerror to the
> >                   log in
> >                   >                 1.3.1. <http://1.3.1.> The RC is
> >
> >                   >                 >         available, can you try
> >            with that?
> >                   >                 >
> >                   >                 >         Samisa...
> >                   >                 >
> >                   >                 >         alebu wrote:
> >                   >                 >
> >                   >                 >                 Hi list.
> >                   >                 >                 I have such a
> >            situation:
> >                   >                 >                 I have some
> >            web-service
> >                   which was
> >                   >                 generated from WSDL
> >                   >                 >                 using WSDL2C
> >            utility.
> >                   >                 >                 Later I decided
> >            to write
> >                   part of
> >                   >                 this web-service with
> >                   >                 >                 C++. Before
> >            functions that
> >                   uses
> >                   >                 >                 C++ code I put:
> >                   >                 >                 #ifdef __cplusplus
> >                   >                 >                 extern "C"
> >                   >                 >                 #endif
> >                   >                 >                 Then I tried to
> >            compile
> >                   using g++.
> >                   >                 During compilation
> >                   >                 >                 some errors
> >            were found,
> >                   but
> >                   >                 >                 all of them was
> >            about
> >                   incorrect
> >                   >                 conversion from void*
> >                   >                 >                 into axis2 types.
> >                   >                 >                 When I fixed
> >            them (I hope)
> >                   but when
> >                   >                 I call this
> >                   >                 >                 web-service I
> >            got axis
> >                   error:
> >                   >                 >                 ...
> >                   >                 >
> >                   >
> > <faultcode>soapenv:Server</faultcode>
> >                   >                 >
> >                   <faultstring>Failed in
> >                   >                 creating
> >                   >                 >                 DLL</faultstring>
> >                   >                 >                 ...
> >                   >                 >                 In axis2.log
> >            only one
> >                   message was
> >                   >                 interesting for me:
> >                   >                 >
> >                   raw_xml_in_out_msg_recv.c(115) Impl
> >                   >                 object for service
> >                   >                 >                 'myService' not
> >            set in
> >                   message
> >                   >                 receiver. 100 :: Failed
> >                   >                 >                 in creating DLL
> >                   >                 >
> >                   >                 >                 I understand
> >            that it
> >                   probably was'nt
> >                   >                 very wise to
> >                   >                 >                 compile .c
> >            files using g++
> >                   but,
> >                   >                 compilation was
> >                   >                 >                 sucessful, so I
> >            wonder
> >                   >                 >                 where possible
> >            problem can
> >                   be.
> >                   >                 >                 Is it possible
> >            at all to
> >                   compile
> >                   >                 axis2/C web serice
> >                   >                 >                 from C++
> >            sources using C++
> >                   >                 possibilities?
> >                   >                 >
> >                   >                 >
> >                   >
> >
> > ------------------------------------------------------------------------
> >                   >                 >
> >                   >                 >                 No virus found
> >            in this
> >                   incoming
> >                   >                 message.
> >                   >                 >                 Checked by AVG.
> >            Version:
> >                   7.5.519 /
> >                   >                 Virus Database:
> >                   >                 >                 269.22.13/1376
> >            - Release
> >                   Date:
> >                   >                 4/13/2008 1:45 PM
> >                   >                 >
> >                   >                 >
> >                   >                 >
> >                   >                 >         --
> >                   >                 >         Samisa Abeysinghe
> > Director,
> >                   Engineering;
> >                   >                 WSO2 Inc.
> >                   >                 >
> >                   >                 >         http://www.wso2.com/ -
> >            "The Open
> >                   Source SOA
> >                   >                 Company"
> >                   >                 >
> >                   >                 >
> >                   >                 >
> >                   >                 >
> >                   >                 >
> >                   >
> >
> > ---------------------------------------------------------------------
> >                   >                 >         To unsubscribe, e-mail:
> >                   >
> > axis-c-user-unsubscribe@ws.apache.org
> >            <mailto:axis-c-user-unsubscribe@ws.apache.org>
> >                   >                 >         For additional
> >            commands, e-mail:
> >                   >                 >
> > axis-c-user-help@ws.apache.org
> >            <mailto:axis-c-user-help@ws.apache.org>
> >                   >                 >
> >                   >                 >
> >                   >                 >
> >                   >
> >                   >
> >                   >
> >
> > ---------------------------------------------------------------------
> >                   >                 To unsubscribe, e-mail:
> >                   >
> > axis-c-user-unsubscribe@ws.apache.org
> >            <mailto:axis-c-user-unsubscribe@ws.apache.org>
> >                   >                 For additional commands, e-mail:
> >                   >                 axis-c-user-help@ws.apache.org
> >            <mailto:axis-c-user-help@ws.apache.org>
> >                   >
> >                   >
> >                   >
> >                   >
> >                   >
> >
> > ---------------------------------------------------------------------
> >                   To unsubscribe, e-mail:
> >            axis-c-user-unsubscribe@ws.apache.org
> >            <mailto:axis-c-user-unsubscribe@ws.apache.org>
> >                   For additional commands, e-mail:
> >                   axis-c-user-help@ws.apache.org
> >            <mailto:axis-c-user-help@ws.apache.org>
> >
> >
> >
> >
> >  ---------------------------------------------------------------------
> >        To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> >        <mailto:axis-c-user-unsubscribe@ws.apache.org>
> >        For additional commands, e-mail:
> >        axis-c-user-help@ws.apache.org
> >        <mailto:axis-c-user-help@ws.apache.org>
> >
> >
> >
> >
> >
> >
> >    --    Samisa Abeysinghe Director, Engineering; WSO2 Inc.
> >
> >    http://www.wso2.com/ - "The Open Source SOA Company"
> >
> >
> >    ---------------------------------------------------------------------
> >    To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> >    <mailto:axis-c-user-unsubscribe@ws.apache.org>
> >    For additional commands, e-mail: axis-c-user-help@ws.apache.org
> >    <mailto:axis-c-user-help@ws.apache.org>
> >
> >
> > ------------------------------------------------------------------------
> >
> > No virus found in this incoming message.
> > Checked by AVG. Version: 7.5.524 / Virus Database: 269.23.4/1394 -
> > Release Date: 4/23/2008 7:16 PM
> >
> >
>
>
> --
> Samisa Abeysinghe Director, Engineering; WSO2 Inc.
>
> http://www.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
>
>

Mime
View raw message