Могу ли я запустить 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. Я сделал много исследований и разработок, но не смог решить эту проблему. Любое понимание будет с благодарностью.