Лучшая альтернатива стартап-классам Weblogic в Websphere?
Я работаю над проектом миграции серверов с Weblogic на Websphere. Проблема в том, что в Weblogic мы уже используем класс, указанный как Startup-class в Weblogic (и аргументы такого класса, как файл конфигурации log4j), который присутствует в jar-файле, который добавляется в путь к классам Weblogic путем редактирования сценария запуска. Этот jar инициализирует глобальный файл log4j, который предназначен для всех приложений, развернутых на сервере, а не для какого-либо конкретного приложения. Каждое приложение отличается категорией log4j.
Теперь я не смог найти похожую вещь в Websphere. Так что же является лучшим решением? Я могу создать новое приложение, которое будет выполнять все инициализации, такие как классы запуска. Я думал об использовании автозагрузки bean-компонентов, но прочитал в документации IBM, что они устарели из-за EJB 3.1 Session Beans. Кроме того, как убедиться, что это приложение загружается первым? Давая стартовый вес Websphere xml 1, как здесь?
Я использую Weblogic 6.3.2 и Websphere 8.5
2 ответа
Похоже, что пользовательские службы (или пользовательская функция в профиле Liberty) являются лучшим аналогом, если вам нужно запустить логику во время запуска сервера. В противном случае, если вам просто нужно добавить библиотеку в каждое приложение, создайте общую библиотеку и затем либо свяжите ее с сервером, либо свяжите ее с конкретными приложениями или модулями.
Инструментарий миграции WebSphere предлагает заменить реализации WebLogic T3StartupDef и T3ShutdownDef реализацией ServletContextListener, компонентом запуска сеанса (Singleton) или сервлетом, настроенным для загрузки во время запуска. Если вы еще не использовали инструментарий миграции WebLogic в WebSphere, проверьте его. Он предоставляет большую помощь, особенно с расширениями дескриптора развертывания.
Сессионный компонент @Singleton в EJB 3.1 заменяет запатентованный компонент запуска WebSphere.
Лучший подход зависит от типа модуля, который вам необходим для логики запуска.
Если вы рассматриваете вариант пользовательских служб, обратите внимание, что пакет com.ibm.websphere.runtime недоступен в Liberty, если вы рассматриваете сервер Liberty.