- Веб-приложение для развертывания в WebSphere Liberty
- Плагин Open Liberty Maven
- Преамбула Maven
- Плагин Maven WAR
- Настройка плагина Open Liberty Maven
- Исполняемый файл Open Liberty JAR
- Запуск встроенного файла JAR Open Liberty
- Полное ПО Maven для встроенного сервера Liberty
Возможно, это как-то связано с моей долгой историей работы с WebSphere Application Server, но я всегда отдавал предпочтение профилю WebSphere Liberty всякий раз, когда появляется такая возможность встроить среду выполнения сервлета в исполняемом файле JAR. В этом руководстве по профилю WebSphere Liberty я хотел бы продемонстрировать, насколько просто взять существующее веб-приложение Java, развернуть его на сервере WebSphere Liberty и упаковать все это в исполняемый файл JAR.
Рисунок 1. Создание простого веб-приложения Maven в Eclipse.
Веб-приложение для развертывания в WebSphere Liberty
Первый шаг в этот процесс на самом деле должен развернуть веб-приложение на Java. Я использовал мастер Eclipse New Maven Project для создания простого веб-приложения, в котором не было ничего, кроме скромного JSP, который выплевывает дату. Это не сложно RESTful веб-сервис или Spring Boot MVC приложения, но так как это руководство по WebSphere Liberty сфокусировано на создании встроенного JAR, а не на основах разработки веб-приложений, это необязательно.
<html> <body> <h2> Привет, мир профиля WebSphere Liberty ! </ h2> Если это печатает дату, исполняемый файл JAR работает! <% = new java.util.Date ()%> </ body> </ html>
Сгенерированное приложение также содержало файл web.xml, который не требуется в современных веб-приложениях Java, но Maven сгенерировал простой файл для обратной совместимости.
<! Веб-приложение DOCTYPE PUBLIC "- // Sun Microsystems, Inc.// Веб-приложение DTD 2.3 // EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <веб-приложение> < display-name> Пример встроенного WebSphere Liberty </ display-name> </ web-app>
Структура примера проекта профиля WebSphere Liberty.
Плагин Open Liberty Maven
После создания JSP и дескриптора развертывания в процессе встраивания WebSphere Liberty в исполняемый JAR-файл решается последняя вещь - файл POM. специалист POM состоит из трех важных частей, которые заслуживают внимания:
- Преамбула, сгенерированная Eclipse
- Конфигурация maven-war-plugin
- Конфигурирование liberty-maven-plugin
Преамбула Maven
Затмение создало часть специалист POM-файл указывает, что приложение будет упаковано как развертываемая война. Эта часть POM также указывает, что artifactId является openliberty, а версия является примером , что означает, что создаваемый архив веб-приложения будет называться openliberty-example.war . Файл POM в том виде, как он был изначально сгенерирован инструментом Eclipse Maven, выглядит следующим образом:
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http: / /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <groupId> com.mcnz.liberty.tutorial < / groupId> <artifactId> openliberty </ artifactId> <packaging> war </ packaging> <версия> пример </ version> <name> встроенный пример свободы WebSphere </ name> </ project>
Плагин Maven WAR
Плагин Maven War необходим для упаковки приложения.
Исторически для файлов WAR требовался файл web.xml, но эта необходимость истекла с выпуском API Servlet 3.0. Однако плагин Maven WAR лает, если файл web.xml не существует, если атрибуты конфигурации failOnMissingWebXml не имеют значения false. Поскольку мое приложение содержит дескриптор развертывания, я мог бы оставить этот параметр, но я решил оставить его ради любого, кто пытается развернуть современное веб-приложение во встроенном профиле WebSphere Liberty, и не знал о это необязательный параметр. Конфигурация для первого плагина, который появляется в специалист Файл POM после тега name и перед закрывающим тегом проекта выглядит следующим образом:
<build> <plugins> <plugin> <artifactId> maven-war-plugin </ artifactId> <версия> 3.2.2 </ version> <конфигурация> <failOnMissingWebXml> false </ failOnMissingWebXml> </ configuration> </ plugin> </ plugins> </ build>
Настройка плагина Open Liberty Maven
До этого момента в руководстве я говорил о WebSphere Liberty. Но плагин, который будет использоваться здесь, доступен для Open Liberty. Open Liberty - это версия сервера WebSphere Liberty с открытым исходным кодом, которую можно использовать без лицензионных требований, связанных с флагманским предложением IBM WebSphere Liberty Profile.
Запись плагина Open Liberty, которая размещается сразу после закрывающего тега плагина maven-war-plugin, выглядит следующим образом:
<plugin> <groupId> net.wasdev.wlp.maven.plugins </ groupId> <artifactId> liberty-maven-plugin </ artifactId> <версия> 2.4.2 </ version> <конфигурация> <assemblyArtifact> <groupId> io.openliberty </ groupId> <artifactId> openliberty-runtime </ artifactId> <версия> 18.0.0.2 </ version> <type> zip </ type> </ assemblyArtifact> <packageFile> target / embedded-liberty.jar < / packageFile> <include> runnable </ include> <ooseApplication> false </ooseApplication> <installAppPackages> проект </ installAppPackages> </ configuration> <исполнения> <выполнение> <идентификатор> install-liberty </ id> <фаза> prepare-package </ фаза> <цели> <цель> установить-сервер </ goal> <цель> создать-сервер </ goal> <цель> установить-функцию </ goal> </ goal> </ выполнение> <выполнение > <id> embed-liberty </ id> <фаза> пакет </ фаза> <цели> <цель> установить-приложения </ цель> <цель> сервер пакетов </ цель> </ goal> </ выполнение> </ Executions> </ plugin>
В конфигурации плагина Open Liberty Maven есть много мяса, но вот основные моменты:
- Версия 18.0.0.2 профиля Open Liberty будет встроена
- Исполняемый файл JAR будет называться внедренным-liberty.jar
- Цели Maven, выполненные на этапах подготовки пакета и пакета, загрузят сервер Open Liberty, развернут веб-приложение Java и упакуют сервер и развернутое приложение в исполняемый JAR.
Исполняемый файл Open Liberty JAR
С настроенным Maven POM исполняемый исполняемый JAR-файл Open Liberty можно создать, просто выполнив команду пакета maven:
C: \ webphsere \ embedded \ openliberty> mvn clean install [INFO] ----------------------------------- ------------------------------------- [INFO] СТРОИТЕЛЬНЫЙ УСПЕХ: ПРИМЕР ОТКРЫТЫХ ЛАБЕРТИ JAR [INFO] Общее время: 25.016 с [ИНФО] Окончание: 2018-07-06T14: 22: 21-04: 00 [ИНФО] ----------------------- -------------------------------------------------
Запуск встроенного файла JAR Open Liberty
Чтобы запустить исполняемый JAR-файл со встроенным Open Liberty, просто перейдите в папку \ target, в которой был создан внедренный файл liberty.jar, и введите команду java -jar .
C: \ webphsere \ embedded \ openliberty> java -jar embedded-liberty.jar (default_host): http: // localhost: 9080 / openliberty-example / пример приложения openliberty запущен за 0,458 секунды. На сервере установлено следующее: [jsp-2.3, servlet-3.1, el-3.0]. Сервер defaultServer готов к запуску более умной планеты.
При доступе к встроенному серверу Open Liberty из браузера через назначенный URL-адрес открывается веб-страница, на которой отображается текущая дата вместе с сообщением Hello World в соответствии с JSP, созданным в рамках приложения.
Запуск встроенного сервера Open Liberty.
И это все, что нужно сделать. Если ваше POM настроено правильно и ваше приложение является допустимым веб-приложением Java EE, его развертывание на встроенном сервере WebSphere Liberty или на встроенном сервере Open Liberty является относительно безболезненным делом.
Полное POM вместе с кодом, использованным в этом встроенном примере профиля WebSphere Liberty, можно найти на GitHub ,
Полное ПО Maven для встроенного сервера Liberty
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http: / /maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <groupId> com.mcnz.liberty.tutorial < / groupId> <artifactId> openliberty </ artifactId> <package> war </ packaging> <версия> пример </ version> <имя> встроенная библиотека WebSphere liberty </ name> <plug>> <plugin> <artifactId> maven -war-plugin </ artifactId> <версия> 3.2.2 </ version> <конфигурация> <failOnMissingWebXml> false </ failOnMissingWebXml> </ configuration> </ plugin> <plugin> <groupId> net.wasdev.wlp.maven .plugins </ groupId> <artifactId> liberty-maven-plugin </ artifactId> <версия> 2.4.2 </ version> <конфигурация> <assemblyArtifact> <groupId> io.openliberty </ groupId> <artifactId> время выполнения openliberty </ artifactId> <версия> 18.0.0.2 </ version> <type> zip </ type> </ assemblyArtifact> <packageFile> target / embedded-liberty.jar </ packageFile> <include> runnable </ include> <ooseAppl ication> false </ooseApplication> <installAppPackages> проект </ installAppPackages> </ configuration> <executeings> <execute> <id> install-liberty </ id> <фаза> prepare-package </ phase> <цели> <цели> <цель > install-server </ goal> <goal> create-server </ goal> <goal> install-feature </ goal> </ goal> </ execute> <execute> <id> embed-liberty </ id> < фаза> пакет </ фаза> <цели> <цель> установить-приложения </ цель> <цель> сервер пакетов </ цель> </ goal> </ выполнение> </ execute> </ plugin> </ plugins> </ build> </ project>