19.08.2016, 15:37:31
Войти Зарегистрироваться
Авторизация на сайте

Ваш логин:

Ваш пароль:

Забыли пароль?

Навигация
Новости
Архив новостей
Реклама
Календарь событий
Right Left

Вставьте профиль WebSphere Liberty в исполняемый файл JAR с Maven

  1. Веб-приложение для развертывания в WebSphere Liberty
  2. Плагин Open Liberty Maven
  3. Преамбула Maven
  4. Плагин Maven WAR
  5. Настройка плагина Open Liberty Maven
  6. Исполняемый файл Open Liberty JAR
  7. Запуск встроенного файла JAR Open Liberty
  8. Полное ПО Maven для встроенного сервера Liberty

Возможно, это как-то связано с моей долгой историей работы с WebSphere Application Server, но я всегда отдавал предпочтение профилю WebSphere Liberty всякий раз, когда появляется такая возможность встроить среду выполнения сервлета в исполняемом файле JAR. В этом руководстве по профилю WebSphere Liberty я хотел бы продемонстрировать, насколько просто взять существующее веб-приложение Java, развернуть его на сервере WebSphere Liberty и упаковать все это в исполняемый файл JAR. Возможно, это как-то связано с моей долгой историей работы с WebSphere Application Server, но я всегда отдавал предпочтение профилю 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 состоит из трех важных частей, которые заслуживают внимания:

  1. Преамбула, сгенерированная Eclipse
  2. Конфигурация maven-war-plugin
  3. Конфигурирование 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 есть много мяса, но вот основные моменты:

  1. Версия 18.0.0.2 профиля Open Liberty будет встроена
  2. Исполняемый файл JAR будет называться внедренным-liberty.jar
  3. Цели 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 из браузера через назначенный 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>