0

I'm just started to use axis2c (rev 1.5 on linux ) and I rewrite a simple service which is a copy of the add functionality of the math service.

It seems all ok but at the end of the procedure, when the service should send back the result of the sum, it report the error "No action present".

I called my service "ctictrlintf" and inside the ctictrlintf_invoke function I get that node with the 2 parameter to add.

Here the content of the node printed using axiom_node_to_string api.

<ns1:test1 xmlns:ns1="http://ws.apache.org/axis2/services/ctictrlintf">
<param1>40</param1>
<param2>8</param2>
</ns1:test1>

At the end of the function ctictrlintf_invoke is returned a nod ewith result of the addiction.

<ns1:result xmlns:ns1="http://axis2/test/namespace1">48</ns1:result>

What happened after that is reported below.

Somewhere in addr_out_handler.c the program reported the error "No action present" and abort the operation.

[debug] phase.c(210) Invoke the handler AddressingOutHandler within the phase MessageOut
[info]  Starting addressing out handler
[debug] addr_out_handler.c(133) No action present. Stop processing addressing
[info]  Request served in 0.012 seconds

What mean this error and what action should require the library to complete its work ?

Best reagards, Enzo

Added 18.07.2013 16:56

Inside the config file axis2.xml there is still enable the addressing module

<!-- ================================================= -->
<!-- Global Modules  -->
<!-- ================================================= -->
<module ref="addressing"/>

and when the server is started the log report some note about the activation of the addressing

 [debug] conf_builder.c(234) No custom dispatching order found. Continue with the default dispatching order
 [debug] conf_builder.c(379) Module addressing found in axis2.xml
 [debug] class_loader.c(140) /usr/local/axis2c/lib/libaxis2_http_sender.so shared lib loaded successfully
 [debug] class_loader.c(140) /usr/local/axis2c/lib/libaxis2_http_receiver.so shared lib loaded successfully
 [debug] dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : /usr/local/axis2c/modules/addressing/libaxis2_mod_addr.so
 [debug] class_loader.c(140) /usr/local/axis2c/modules/addressing/libaxis2_mod_addr.so shared lib loaded successfully
 [debug] dep_engine.c(1283) axis2_dep_engine_load_module_dll: DLL path is : /usr/local/axis2c/modules/logging/libaxis2_mod_log.so
 [debug] class_loader.c(140) /usr/local/axis2c/modules/logging/libaxis2_mod_log.so shared lib loaded successfully
 [debug] svc_builder.c(318) DLL path is : /usr/local/axis2c/services/ctictrlintf/libctictrlintf.so
 [debug] svc_builder.c(318) DLL path is : /usr/local/axis2c/services/echo/libecho.so
 [debug] svc_builder.c(318) DLL path is : /usr/local/axis2c/services/math/libmath.so
 [debug] phase_holder.c(139) Add handler AddressingInHandler to phase Transport

and the service code already had the following call

/* Create EPR with given address */
endpoint_ref = axis2_endpoint_ref_create(env, address);

/* Setup options */
options = axis2_options_create(env);
axis2_options_set_to(options, env, endpoint_ref);
axis2_options_set_action(options, env, "http://www.aesys.com/axis2/services/ctictrlintf/test1");

/* Set service client options */
axis2_svc_client_set_options(svc_client, env, options);

/* Engage addressing module */
axis2_svc_client_engage_module(svc_client, env, AXIS2_MODULE_ADDRESSING);
BenMorel
  • 34,448
  • 50
  • 182
  • 322
enzo1959
  • 409
  • 2
  • 5
  • 13
  • If you don't use addressing directly, you should not include it. Why you think that addressing stops your outgoing message? Your client didn't receive response? Have you tried to invoke a service using some Web Service tester like SoapUI or Web services explorer in Eclipse? – loentar Jul 18 '13 at 17:27
  • Hi Loentar I have just asked for some answer not for other questions. I'm looking for a simle example to start learning axis2c. I used math, starting changing it, but it seems that there are some hidden complexity that I need to known before going on. – enzo1959 Jul 19 '13 at 06:43
  • Then you should not add addressing support. Just ignore "No action present. Stop processing addressing" message. Your service should work well. – loentar Jul 19 '13 at 07:29
  • Thanks loentar. So it seems that I only have the problema with the math client released with axis2c. I write a soap client without asix2 api and everythink works well, including a query to the math service. – enzo1959 Jul 22 '13 at 06:52

1 Answers1

1

This message is produced by addressing module and this is not a error.

Your service has no addressing support and didn't send or receive any addressing-specific headers.

Information about WS-Addressing support in Axis2/C is here.

loentar
  • 5,111
  • 1
  • 24
  • 25
  • I checked you suggestion but the config for enable the addressing support seems to be enabled ( I added more info in the main post at the top of the thread ). – enzo1959 Jul 18 '13 at 15:04