addr_out_handler.c(133) Никаких действий нет. Прекратить обработку адресации

Я только начал использовать axis2c (версия 1.5 в Linux), и я переписываю простой сервис, который является копией функциональности добавления математического сервиса.

Кажется, все в порядке, но в конце процедуры, когда сервис должен отправить обратно результат суммы, он сообщает об ошибке "Действие отсутствует".

Я назвал свой сервис "ctictrlintf", и внутри функции ctictrlintf_invoke я получаю этот узел с параметром 2 для добавления.

Здесь содержимое узла печатается с использованием axiom_node_to_string api.

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

В конце функции ctictrlintf_invoke возвращается кивок с результатом зависимости.

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

Что произошло после этого, сообщается ниже.

Где-то в addr_out_handler.c программа сообщила об ошибке "Нет действий" и прервала операцию.

[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

Что означает эта ошибка и какие действия должны потребовать библиотеки для завершения своей работы?

Лучшие реагенты, Энцо

Добавлено 18.07.2013 16:56

Внутри конфигурационного файла axis2.xml все еще включен модуль адресации

<!-- ================================================= -->
<!-- Global Modules  -->
<!-- ================================================= -->
<module ref="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

и сервисный код уже был следующий вызов

/* 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);

1 ответ

Это сообщение создается модулем адресации, и это не ошибка.

Ваш сервис не имеет поддержки адресации и не отправлял и не получал заголовки, относящиеся к адресации.

Информация о поддержке WS-Addressing в Axis2/C находится здесь.

Другие вопросы по тегам