Изучаю систему 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 минут. Продолжение.
Столкнулся с небольшой проблемой при попытке установить 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 минут. Продолжение.
Комментариев нет:
Отправить комментарий