Могу ли я запустить axis2_http_server в режиме демона?

Я написал веб-сервис с использованием фреймворка wso2-wsf-ccp и пытался запустить его с axis2_http_server, и он работает нормально. Но в реальной жизни, когда мы внедряем в производство, нам нужно запустить axis2_http_server в режиме демона. Я не вижу никакой возможности запустить axis2_http_server в режиме демона. Может ли кто-нибудь направить меня, если это возможно?

2 ответа

Решение

Лучший способ развернуть веб-сервисы под Axis2/C - это использовать mod_axis2 для Apache2. При использовании этого метода Axis2/C будет запускаться как модуль Apache2 при запуске системы.

Здесь и здесь приведены документы по настройке и установке Axis2/C для сборки с mod_axis2,

В качестве альтернативы, если вы не можете использовать mod_axis2, Axis2/C можно запустить в режиме демона с помощью этого сценария init.d (он не идеален, но работает):

#!/bin/sh -e
### BEGIN INIT INFO
# Provides:          axis2c
# Required-Start:    $local_fs $network
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Axis2/C application server
### END INIT INFO

case "$1" in
  start)
    LOGFILE=/var/log/axis2c.log
    touch $LOGFILE
    chown daemon $LOGFILE
    export AXIS2C_HOME=/usr/local/axis2c
    cd $AXIS2C_HOME/bin
    sudo -Enu daemon sh -c "./axis2_http_server >$LOGFILE 2>&1 &"
    ;;

  stop)
    killall -INT axis2_http_server
    ;;

  restart|force-reload)
    $0 stop
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

Поместите этот скрипт как /etc/init.d/axis2c, сделайте его исполняемым и запустите:

sudo update-rc.d axis2c defaults

После этого Axis2/C будет автоматически загружаться при каждом запуске системы.

Как указывалось выше, сейчас я пытаюсь развернуть свои веб-сервисы на Apache (в качестве механизма make shift, который я сделал с помощью axis2_http_server), но после того, как я скомпилировал wso2_wsf_cpp с заголовочными файлами apache2 и apr и пытаюсь развернуть мои веб-сервисы с apache2 и получить доступ к URL-адресу в браузере, например: http://mydomain.com:8080/axis2/services, я не вижу, чтобы что-то происходило (хотя в левом нижнем углу браузера я вижу это сообщение "в ожидании моего домена". com "и это тоже исчезает через некоторое время). Проблема, которую я вижу, связана с services.xml, где я использую следующий вид описания:

<service name="imaservice">
   <parameter name="ServiceClass" locked="xsd:false">imaservice</parameter>
   <description>
      IMA service interfaces
   </description>

   <operation name="registeruser">
      <parameter name="RESTMethod">POST</parameter>
      <parameter name="RESTLocation">registeruser</parameter>
      <messageReceiver class="wsf_cpp_msg_recv" />
   </operation>
</service>

Проблема, которую я нахожу в этой строке: "" Когда я комментирую эту строку, я могу просматривать службы, но при вызове веб-служб я вижу код ошибки "500".

Я обнаружил, что в интернете не так много помощи со структурой wso2_wsf_cpp. Я сделал много исследований и разработок, но не смог решить эту проблему. Любое понимание будет с благодарностью.

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