Начните работу с WildFly для веб-разработки на Java
WildFly — популярный выбор для разработчиков, которые хотят разрабатывать приложения корпоративного уровня.
WildFly — это готовая к использованию кроссплатформенная, гибкая, легкая, управляемая среда выполнения приложений, которая предоставляет все необходимые функции для запуска веб-приложения Java. Это также сертифицированный сервер приложений Java EE 8, почти исключительно использующий Java, и он реализует Jakarta EE, которая представляла собой спецификацию Java Platform, Enterprise Edition (Java EE). Поэтому вы можете запустить его в любой операционной системе.
WildFly, ранее известный как JBoss AS, представляет собой полностью реализованный JEE-контейнер — сервер приложений, разработанный компанией JBoss, которая стала частью Red Hat 5 июня 2006 года, и с тех пор WildFly стал их продуктом.
Как начать работу с WildFly?
Этот сервер приложений промежуточного программного обеспечения Java, известный как WildFly , представляет собой надежную реализацию спецификации платформы Jakarta. Новейшая архитектура WildFly 24, построенная на модульном сервисном контейнере, позволяет предоставлять услуги по требованию, когда они требуются вашему приложению.
Предварительные условия
Перед установкой WildFly необходимо выполнить несколько предварительных условий:
- Убедитесь, что на вашем компьютере установлен JDK — для запуска WildFly рекомендуется JDK 8 или выше. Вы можете использовать JDK с открытым исходным кодом OpenJDK.
После установки JDK установите переменную среды JAVA_HOME. - Убедитесь, что у вас установлен Maven 3.6.0 или выше. Вы можете скачать Maven отсюда и установить переменные среды.
- После загрузки обеих переменных проверьте версии JDK и Maven.
$ java -version
openjdk version “11.0.9” 2020-10-20 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
$ mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f) Maven home: /usr/share/maven
Java version: 11.0.9, vendor: AdoptOpenJDK, runtime: /usr/lib64/adoptopenjdk
Default locale: en_US, platform encoding: UTF-8
OS name: “linux”, version: “5.9.1”, arch: “amd64”, family: “unix”
Загрузите и установите WildFly
Существует множество способов установки WildFly, включая распаковку нашего традиционного zip-архива для загрузки, выборочную установку с помощью Galleon или создание загрузочного jar-файла. Официальное руководство по установке поможет вам определить тип установки WildFly, который лучше всего соответствует потребностям развертывания вашего приложения. В этой статье мы сосредоточимся на типичном подходе к установке zip-архива.
Вы можете скачать WildFly отсюда. Стандартный вариант WildFly — правильный выбор для большинства пользователей, но если вы хотите получить техническую предварительную версию того, что будет в будущем, попробуйте WildFly Preview. После загрузки распакуйте архив в папку и установите его в любой операционной системе, поддерживающей форматы zip или tar.
$ unzip wildfly-preview-24.0.0.Final.zip
Запуск WildFly
WildFly имеет два режима сервера — автономный и домен. Разница между этими двумя режимами заключается не в доступных возможностях, а в управлении сервером приложений. Используйте автономный режим, если вам нужен только один экземпляр сервера. С другой стороны, используйте режим домен, если вы хотите запустить несколько экземпляров WildFly и вам нужна единая точка, из которой вы можете управлять конфигурацией. Дополнительную информацию о режиме домена можно найти в документации.
Чтобы запустить WildFly с использованием конфигурации по умолчанию в автономном режиме, измените каталог на $JBOSS_HOME/bin
и выполните:
$ ./standalone.sh
Чтобы запустить сервер приложений с использованием конфигурации по умолчанию в режиме домена , измените каталог на $JBOSS_HOME/bin
и введите:
$ ./domain.sh
После запуска автономного режима в конце процесса запуска в консоли вы должны обнаружить что-то вроде следующего:
00:46:04,500 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Preview 24.0.0.Final (WildFly Core 16.0.0.Final) started in 4080ms - Started 437 of 638 services (350 services are lazy, passive or on-demand)
00:46:04,502 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0060: Http management interface listening on http://127.0.0.1:9990/management
00:46:04,502 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0051: Admin console listening on http://127.0.0.1:9990
Вы можете указать в браузере адрес http://localhost:9990
(если используется HTTP-порт, настроенный по умолчанию), и вы попадете на страницу приветствия WildFly.
(Ранабир Чакраборти, CC-BY SA 4.0)
Аутентификация
Хотя теперь вы видите, что WildFly запущен, вы не можете получить доступ к консоли администратора, поскольку для этого вам нужно добавить пользователя. По умолчанию безопасность для интерфейсов управления WildFly включена. Это означает, что прежде чем подключаться с помощью консоли администрирования или удаленно с помощью CLI, вам необходимо добавить нового пользователя. Этого можно добиться, просто используя сценарий add-user.sh
или add-user.bat
в папке bin.
После запуска скрипта система проведет вас через процесс добавления нового пользователя.
$ ./add-user.sh
What type of user do you wish to add?
a) Management User (mgmt.users.properties)
b) Application User (application-users.properties)
(a):
Выберите вариант по умолчанию «a», чтобы добавить пользователя управления, при этом пользователь будет добавлен в ManagementRealm. Таким образом, пользователю разрешено выполнять операции управления с помощью веб-консоли администратора или интерфейса командной строки. Другой вариант — «b», при котором пользователь добавляется в ApplicationRealm. Эта область предназначена для использования с приложениями.
Enter the details of the new user to add.
Using realm ‘ManagementRealm’ as discovered from the existing property files.
Username : Ranabir
Password recommendations are listed below. To modify these restrictions, edit the add-user.properties configuration file.
[…]
Passward :
Re-enter Password :
Здесь вы выбираете опцию управления пользователем и указываете необходимое имя пользователя и пароль.
What groups do you want this user to belong to?
(Please enter a comma-separated list, or leave blank for none) [ ]:
Пользователи могут быть связаны с произвольными группами по вашему выбору, и вам будет предложено рассмотреть возможность назначения нового пользователя в группу. Группы полезны для упрощения администрирования таких вещей, как права доступа, но для начала можно оставить это поле пустым. Затем вы подтверждаете добавление пользователя. Пользователь записывается в файлы свойств, используемые для аутентификации, и отображается сообщение с подтверждением.
Is this new user going to be used for AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server Jakarta Enterprise Beans calls.
yes/no? no
Наконец, вас спросят, будете ли вы использовать добавленную вами учетную запись для идентификации одного процесса WildFly по отношению к другому — обычно в управляемом домене WildFly. Ответом на этот вопрос должно быть «нет», поскольку добавляемая здесь учетная запись предназначена для использования администратором-человеком.
После успешного добавления пользователя теперь вы можете обновить браузер, и консоль будет выглядеть следующим образом:
Развертывание приложения
WildFly предоставляет множество способов развертывания вашего приложения на сервере. Но если вы используете автономный сервис WildFly, простой способ развернуть ваше приложение — скопировать архив приложения (war/ear/jar
) в $JBOSS_HOME/standalone/deployments
каталог установки сервера. Подсистема сканера развертывания обнаруживает архив и развертывает его. Еще один простой способ сделать то же самое — перейти в раздел Развертывания консоли и загрузить архив приложения.
Вы можете создать свое собственное приложение и развернуть его соответствующим образом, но здесь я использовал демонстрационное приложение helloworld из краткого руководства WildFly.
Шаги по использованию примеров быстрого запуска WildFly:
- Создайте отдельную папку локально и внутри нее клонируйте проект быстрого запуска WildFly. После клонирования репозитория измените каталог на
helloworld
(или вы можете поиграть с любым другим примером проекта) и создайте проект maven.
$ mkdir WFLY
$ cd WFLY
$ git clone –depth 1 git@github.com:wildfly/quickstart.git
$ cd quickstart/helloworld
$ mvn clean install
- Если у вас возникнут какие-либо проблемы со сборкой проекта, вам необходимо клонировать репозиторий
boms
в текущий рабочий каталог (в моем примере WFLY) и собрать его. После этого создайте образец проекта. Этот шаг необходим только при создании разрабатываемой версии сервера WildFly. Это не требуется при запуске отмеченной или выпущенной версии сервера WildFly.
$ git clone git@github.com:wildfly/boms.git
$ cd boms
$ mvn clean install
- После успешной сборки примера проекта возьмите архив приложения
helloworld.war
из целевой папки и скопируйте его в каталог$JBOSS_HOME/standalone/deployments
в установке сервера.
$ cd quickstart/helloworld/target/
$ cp helloworld.war …/…/…/wildfly-preview-24.0.0.Final/standalone/deployments/
Теперь укажите в браузере
http://localhost:8080/helloworld/
, чтобы увидеть успешно развернутое приложение WildFly.
Выводы
Несмотря на то, что WildFly существует на рынке уже почти два десятилетия, он по-прежнему является популярным выбором для разработчиков, которые хотят разрабатывать готовые к использованию приложения корпоративного уровня. Качество кода остается на высоком и эффективном уровне. Разработчики постоянно проделывают множество уникальных и важных работ, которые выводят WildFly на новую вершину. Последняя версия WildFly хорошо работает на SE 16 и 17, а позже в этом году будет поддерживать SE 17 в стандартной версии WildFly.