понедельник, 27 января 2020 г.

Установка WSO2 EI 7.0.1 в виде службы Windows

Изучаю систему WSO2 Enterprise Integrator версии 7. Начал я с изучения сервисной шины более старой версии 5.0. Так получилось, что я столкнулся сначала с более старой версией. Удалось запустить, посмотреть веб-интерфейс, выполнить примеры. Затем я взялся за последнюю версию.

Столкнулся с небольшой проблемой при попытке установить WSO2 EI как службу. Сама система в консоли работала, но как служба, отказывалась. Рассказываю как решить.

Т.к. система работает на платформе Java, чтобы сделать её службой необходима специальная обёртка. Здесь используется обёртка YAJSW.

После установки EI, в папке куда установилась система находятся папки micro-integrator, balerina-integrator и streaming-integrator.

Мне надо было запустить micro-integrator. В папке bin микро интегратора есть папка yajsw, в которой находится конфигурация обёртки. Дело не хитрое, скопировал и устанавливай службу. Так задумано, по крайней мере.

Пере запуском, документация рекомендует установить переменные JAVA_HOME и CARBON_HOME. Всё это было сделано.

Для проверки можно сначала запустить runConsole.bat в папке bat обёртки (находится в папке yajsw, лежащей в папке установки EI. В документации рекомендуют поместить в эту папку более свежую версию обёртки). При запуске, в консоли выводились ошибки в цикле. Программа раз 6 пытается что-то делать. В местах, где должны быть подставлены значения из переменных среды красуется строка !unresolved!

Решил ручками исправить все пути в конфигурации. При запуске, вылезли другие ошибки.
error finding main method in class: org.wso2.carbon.bootstrap.Bootstrap : org.wso2.carbon.bootstrap.Bootstrap
no java main method found -> aborting

В итоге, оказалось, что в конфигурации неправильно указан загружаемый класс. Вместо org.wso2.carbon.bootstrap.Bootstrap, необходимо указать org.wso2.micro.integrator.bootstrap.Bootstrap. В двух местах.

Оставалось только разобраться с переменными окружения.
Всё оказалось просто.
Обёртка использует язык Groovy. Этот язык считывает имена переменных в том регистре, в котором они записаны. Для Windows нет разницы в названиях, но в Linux разница есть. Для однообразия, в настройках используются имена в нижнем регистре. Groovy, считав в настройках ${carbon_home}, искал переменную carbon_home, но не находил, т.к. её имя в верхнем регистре - CARBON_HOME. То же и с JAVA_HOME.

Переименовал имена переменных в нижний регистр и всё заработало.
Дел на 5 минут, а потрачен целый день.

UPD: Дел оказалось не на 5 минут. Продолжение.

Комментариев нет:

Отправить комментарий

Определение параметров CHS (Cylinder, Head, Sector) карт CF с помощью утилиты IDEINFO

 Столкнулся с проблемкой подключения карт CF к материнской плате LTC-SL REV-B и WD386SX-LPX. В БИОС этих плат нет автоопределения накопителе...