axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <sam...@wso2.com>
Subject Re: Writing web services with C++
Date Thu, 24 Apr 2008 10:52:53 GMT
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>
>> 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>
>>         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> 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>
>>         >                 > wrote:
>>         >                 >         What are the compiler options you
>>         used when
>>         >                 compiling the
>>         >                 >         service?
>>         >                 >
>>         >                 >         We have added the dlerror to the
>>         log in
>>         >                 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
>>         >                 >         For additional commands, e-mail:
>>         >                 >         axis-c-user-help@ws.apache.org
>>         >                 >
>>         >                 >
>>         >                 >
>>         >
>>         >
>>         >
>>         ---------------------------------------------------------------------
>>         >                 To unsubscribe, e-mail:
>>         >                 axis-c-user-unsubscribe@ws.apache.org
>>         >                 For additional commands, e-mail:
>>         >                 axis-c-user-help@ws.apache.org
>>         >
>>         >
>>         >
>>         >
>>         >
>>         
>>         
>>         ---------------------------------------------------------------------
>>         To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
>>         For additional commands, e-mail:
>>         axis-c-user-help@ws.apache.org
>>         
>>         
>>
>>     
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: 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
For additional commands, e-mail: axis-c-user-help@ws.apache.org


Mime
View raw message