2016-10-13 2 views
0

У меня есть веб-приложение, написанное на Java и развернутое на JBoss. Приложение размещено в экземпляре EC2 облака Amazon. Когда я вхожу в систему как пользователь Ubuntu на свой сервер и запускаю сервер JBoss, мое приложение также может получить доступ к библиотекам JNI (которые также установлены на одной машине EC2).Unsatisfiedlinkerror при запуске приложения с cron

Однако мне нужно было написать сценарий, который будет автоматически перезапускать сервер jboss каждую ночь, чтобы я написал сценарий и поместил его на crontab сервера. Когда я вошел в систему как пользователь Ubuntu и добавил мой скрипт к «crontab -e», он даже не выполнил. Однако, когда я редактировал crontab, зарегистрированный как root, это сработало (я редактировал файл/etc/crontab и указывал, что пользователь Ubuntu должен запустить скрипт). Скрипт отлично работает, и сервер перезагружается каждый вечер. Тем не менее, мое приложение продолжает получать «UnsatisfiedLinkErrors», когда пытается получить доступ к библиотекам JNI. Как ни странно, этого не происходит, когда я вручную запускаю сервер, зарегистрированный как пользователь Ubuntu. Любые идеи, как я могу исправить эту проблему?

ответ

0

Вам, вероятно, придется играть с настройками LD_LIBRARY_PATH для вашего сценария на основе cron.

Java (JBoss) будет искать вашу родную библиотеку внутри LD_LIBRARY_PATH. Обязательно добавьте свою lib в LD_LIBRARY_PATH.

В качестве альтернативы вы можете указать местоположение через java.library.path.

-Djava.library.path=${LD_LIBRARY_PATH}:${LOCATION_OF_YOUR_LIB} 
Смежные вопросы