В чем разница между karaf, работающим как сервис через обертку, и запущенным из консоли как тот же пользователь?

Я запускаю набор приложений на Karaf 3.0.1, на Windows Server 2008. У меня проблема с сторонней библиотекой, от которой зависит один из моих сервисов.

Установка karaf выполняется как выделенная учетная запись пользователя службы Active Directory. Если я захожу на сервер Windows (используя свой собственный логин) и открываю командную строку в качестве пользователя службы karaf (используя run-as) и запускаю karaf, все мои процессы работают правильно.

Но я хочу, чтобы karaf работал как служба Windows. Я следовал инструкциям по использованию оболочки karaf, и она была установлена ​​как сервис. Он работает как тот же пользователь службы karaf, который я использовал для интерактивного запуска в консоли, но всякий раз, когда он запускается из службы Windows, я получаю сообщение в журнале оболочки, что он "не может загрузить или найти" мой третий тусовочная библиотека. Я не уверен, что смогу раскрыть стороннюю библиотеку, но я считаю, что она использует JNI для части своей функциональности, если это имеет значение. Вовлечена dll, и копия этой dll находится в папке deploy и обеих папках Windows\system32 / syswow64 для полноты. Я также предоставил полные права на всю папку karaf пользователю службы karaf.

Это похоже на какую-то проблему с разрешениями или на то, что в конфигурации службы оболочки что-то отсутствует, но я не вижу, чтобы что-то меня выскакивало. Что еще будет отличаться между karaf, работающим как служба, и запущенным из консоли с теми же учетными данными пользователя? Есть другие идеи?


редактирование: после прочтения дальнейшей документации на обертку я в конечном итоге поместил мою dll в папку \lib под моей установкой karaf. После этого мое приложение работает.

1 ответ

Решение

В зависимости от типа вашей dll, это может быть связано с тем, что предоставляемая оболочка службы является только 32-разрядной оболочкой, это связано с проблемами лицензирования Tanuki Service Wrapper. Так что использование dll может работать при запуске с bin/karaf вместо использования сервиса. Если вы хотите использовать Tanuki Wrapper, вы можете использовать его самостоятельно. Последняя и самая лучшая его версия просто не может быть отправлена ​​из-за проблем с лицензированием.

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