It looks On 07/07/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
I'm having trouble with the Calculator web service. I am using the Axis2 simple HTTP server, configured as described in your samples doc. Running runwsclient gives me this: Invoking operation add with params 4.7 and 9 CalculatorImpl::add 4.700000 + 9.000000 = 13.700000 No Root Element in the document Calculator stub invoke FAILED! Using endpoint : http://localhost:9090/axis2/services/Calculator Invoking operation div with params 7.2 and 3.6 DivideServiceImpl::div 7.200000 / 3.600000 = 2.000000 CalculatorImpl::div DivideService returned result: 2.000000 No Root Element in the document Calculator stub invoke FAILED! Using endpoint : http://localhost:9090/axis2/services/Calculator Invoking operation mul with params 7 and 6 CalculatorImpl::mul 7.000000 * 6.000000 = 42.000000 No Root Element in the document Calculator stub invoke FAILED! I am still investigating but here's my axis2 log (looks OK to me but I'm not sure...): [Fri Jul 7 15:39:02 2006] [debug] http_worker.c(191) Client HTTP version HTTP/1.1 [Fri Jul 7 15:39:02 2006] [debug] soap_builder.c(840) identified soap version is soap12 [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase TransportIn [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase PreDispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler AddressingInHandler within the phase PreDispatch [Fri Jul 7 15:39:02 2006] [info] Starting addressing in handler ......... [Fri Jul 7 15:39:02 2006] [info] addr_in_handler.c [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase Dispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler addressing_based_dispatcher within the phase Dispatch [Fri Jul 7 15:39:02 2006] [debug] addr_disp.c(110) Checking for service using WSA enpoint address : http://127.0.0.1:9090/axis2/services/Calculator [Fri Jul 7 15:39:02 2006] [debug] addr_disp.c(140) Service found using WSA enpoint address [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler request_uri_based_dispatcher within the phase Dispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler soap_action_based_dispatcher within the phase Dispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler soap_message_body_based_dispatcher within the phase Dispatch [Fri Jul 7 15:39:02 2006] [debug] soap_body_disp.c(211) Checking for operation using SOAP message body's first child's local name : add [Fri Jul 7 15:39:02 2006] [debug] soap_body_disp.c(220) Operation found using SOAP message body's first child's local name [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase PostDispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler dispatch_post_conditions_evaluator within the phase PostDispatch [Fri Jul 7 15:39:02 2006] [debug] phase.c(338) Invoke the handler context_handler within the phase PostDispatch [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase PolicyDetermination [Fri Jul 7 15:39:02 2006] [debug] engine.c(881) Invoking phase PreDispatch [Fri Jul 7 15:39:02 2006] [info] Axis2EntryPointService invoke called with system root: /home/delfinoj/Tuscany/M1-cpp/tuscany_sca_cpp-0.1.incubating-M1-bin /samples/Calculator/deploy entrypoint name: CalculatorSubsystem/CalculatorService/WSCalculatorEntrypoint operation name: add [Fri Jul 7 15:39:02 2006] [debug] engine.c(440) Axis2 engine receive successful [Fri Jul 7 15:39:02 2006] [info] Request served in 0.137 seconds Finally, I'm now trying to test your web service with a SOAP test tool, and seeing that the Calculator.wsdl is using a different endpoint than the client (http://localhost/axis/CalculatorService), it's a minor issue but it would be nice if they used the same endpoint to avoid creating confusion... I got different "service not found" errors in axis2.log when I started with the WSDL, and at least that confused me :) I'll send an update later when I get a capture of the SOAP traffic, hoping it'll help understand why the web service is not working.
It looks like the ws call is getting into the component and that is working fine. The error is when we are trying to convert the dataobject returned from the calculator sample to an axiom object before returning it over the wire. I haven't seen this behaviour before. Before starting the axis http server you could set the environment variabl TUSCANY_SCACPP_LOGGING=4 to get some trace. I'll try and take a look at this tomorrow if I can free up some time. Cheers, -- Pete
