Karaf Shell
Karaf Shell — это командная строка, предоставляемая Apache Karaf для управления и конфигурирования контейнера OSGi.
Основные команды и конфигурирование системы
Управление конфигурацией (config)
Управление конфигурациями доступно через:
-
Редактирование файлов через доступ к файловой системе сервера;
-
Shell команды при прямом подключении к Apache Karaf;
-
Web консоль в меню OSGI → Configuration.
Shell команды:
config:list
Показывает список всех конфигураций в текущем экземпляре Karaf.
config:edit <pid>
Редактирует конфигурацию с указанным PID.
config:propset <key> <value>
Устанавливает значение конфигурационного свойства с заданным ключом.
config:propdel <key>
Удаляет конфигурационное свойство с указанным ключом.
Управление бандлами (bundles)
bundle:list
Отображает список всех установленных бандлов в текущем экземпляре Karaf.
bundle:install <url>
Устанавливает бандл из указанного URL.
bundle:start <id>
Запускает бандл с указанным ID.
bundle:stop <id>
Останавливает бандл с указанным ID.
Управление фичами (features)
feature:list
Показывает список всех доступных фич.
feature:install <feature>
Устанавливает указанную фичу.
feature:uninstall <feature>
Удаляет указанную функцию.
Управление брокером
При помощи утилиты командной строки можно создавать экземпляры брокера, управлять экземплярами брокера, очередями, пользователями. Описание доступных команд можно посмотреть выполнив команду:
./artemis --help
Удалённое управление
Karaf поддерживает SSH доступ для удалённого управления:
ssh -p 8101 karaf@localhost
Если возникнет отказ в подключении с сообщением "Unable to negotiate with 127.0.0.1 port 8101: no matching host key type found. Their offer: ssh-rsa", используйте такой вариант подключения:
ssh -p 8101 -oHostKeyAlgorithms=+ssh-rsa karaf@localhost
Установка библиотек
Сервер Apache Karaf поддерживает установку библиотек без использования OSGI обёрток и описаний через папку <karaf_home>/lib:
-
Помещаем библиотеку в папку;
-
Прописываем в etc/config.properties в свойство org.osgi.framework.system.packages.extra необходимые пакеты;
-
Перезагружаем Karaf.
Доступны варианты установки бандлов/библиотек:
-
Установка/настройка через папку <karaf_home>/lib
-
Горячая установка через папку <karaf_home>/deploy
-
Установка с помощью команд через shell оболочку
-
Установка с помощью команд через web консоль
Жизненные циклы OSGI бандла
Состояния жизненного цикла OSGI бандла:
-
INSTALLED - успешно установлен;
-
RESOLVED - разрешены все зависимости.
Бандлу доступны все Java-классы и те бандлы, от которых он зависит. Данное состояние показывает, что бандл готов к старту; -
STARTING - бандл стартует. Метод BundleActivator.start() выполняется и пока не вернул значения;
-
ACTIVE - бандл успешно запустился. Метод BundleActivator.start() вернул значение;
-
STOPPING - останавливается бандл. Метод BundleActivator.stop() вызван, но пока не вернул значения;
-
UNINSTALLED - бандл не установлен (удален), соответственно он не может переходить в другие состояния. Жизненный цикл бандла завершен;
-
FAILURE - бандл не может быть запущен в связи с ошибкой
Доступ к Shell через webconsole
В этой инструкции мы рассмотрим, как получить доступ к shell через webconsole если у вас нет к нему прямого доступа.
-
Установка webconsole:
-
Зайдите в веб-консоль Entaxy http://localhost:8181/hawtio
-
Перейдите в раздел OSGI и выберите вкладку Features;
-
В поисковой строке введите
webconsole
и установите найденный пакетwebconsole/4.2.9
, нажав на кнопку Install.
-
-
Доступ к webconsole
-
Перейдите по адресу - http://localhost:8181/system/console
-
В выпадающем меню перейдите в раздел Main → Gogo
-
-
Готово!