Jetty

Jetty — это веб-сервер и контейнер сервлетов (программных компонентов, расширяющих функциональность веб-сервера). Его можно использовать в качестве простого локального HTTP-сервера, который способен выполнять приложения на Java. Часто Jetty применяют в связке с веб-серверами Apache HTTP-сервером или Nginx, которые по умолчанию не могут запускать Java-приложения. Кроме того, Jetty встраивают в Java-приложения, если им нужна серверная функциональность.

Развертывание веб-приложений с помощью Jetty

Где и почему используется Jetty

Jetty используется как на стадии разработки, так и в продакшене (готовых, работающих приложениях). Он работает на мобильных платформах, легко встраивается в облачные сервисы, фреймворки, серверы приложений и среды разработки. Например, Jetty используется в следующих решениях:

  • распределенных SQL-обработчиках запросов для больших данных, таких как Facebook Presto;
  • облачных вычислениях Google AppEngine;
  • сервисе для совместной работы Zimbra;
  • фреймворке Google Web Toolkit;
  • масштабном портале Yahoo!;
  • операционной системе для мобильных устройств Android;
  • интегрированных средах разработки программного обеспечения Eclipse IDE, IntelliJ IDEA;
  • серверах приложений — например, Apache Geronimo. 

Курс 

Java-разработчик

Освойте программирование, backend-разработку на Java, Spring и основы DevOps.

Узнать подробности

Jetty популярен из-за широкой функциональности. Также его отличают:

  • гибкость и компактность;
  • легкое масштабирование;
  • встраивание в любые приложения;
  • поддержка асинхронной обработки данных.

Кроме того, Jetty бесплатен для коммерческого использования и имеет открытый исходный код.

Выбор версии и запуск Jetty

Для запуска Jetty независимо от среды разработки или системы сборки требуется скачать архив с нужной версией программы. Установочные файлы доступны на официальном сайте и в репозитории Maven Central. Самая свежая версия Jetty на сегодняшний день — 11. Кроме последних версий протоколов HTTP/1.1, HTTP/2, WebSocket и FastCGI в релизе добавлена поддержка JakartaEE Namespace. Эта технология позволяет приложениям «общаться» с платформой.

После скачивания необходимо распаковать архив и запустить файл .jar с помощью команды:

java -jar start.jar

После этого сервер Jetty будет доступен по адресу http://localhost:8080/. Для его остановки нужно нажать комбинацию Ctrl+C.

Подключение плагина Jetty в Maven

Плагин Jetty используют в Maven для быстрой разработки и тестирования. По желанию он может периодически сканировать проект на предмет изменений и автоматически развертывать веб-контейнеры, если они обнаружены. Это делает цикл разработки более продуктивным, устраняя этапы сборки и развертывания: программист использует IDE для внесения изменений в проект, а запущенный веб-контейнер автоматически подхватывает их, позволяя разработчику сразу же их протестировать.

С 10-й версии режимы развертывания применяются одинаково для всех команд, а параметры конфигурации упрощены. Теперь у плагина стало только 4 команды запуска:

jetty:run

jetty:run-war

jetty:start

jetty:start-war

Для подключения плагина Jetty к системе Maven необходимо добавить описание jetty-maven-plugin в файл pom.xml:

<plugin>
	<groupId>org.eclipse.jetty</groupId>
	<artifactId>jetty-maven-plugin</artifactId>
	<version>{VERSION}</version>
</plugin>

Находясь в той же директории, где располагается файл pom.xml, выполнить команду:

mvn jetty:run

Сервер будет доступен по адресу http://localhost:8080/. По умолчанию Jetty не сканирует веб-приложение на предмет изменений. Чтобы начать автоматическое сканирование, нужно установить ненулевое значение параметра <scan>.

Jetty — гибкий и многофункциональный сервер, который можно использовать на всех этапах жизненного цикла приложения — от разработки и тестирования до развертывания и работы в продакшн-режиме. 

Курс 

Java-разработчик

Освойте перспективную профессию с нуля за 14 месяцев. 

  • Неограниченный доступ к материалам курса;
  • Вебинары тренажеры, проекты в портфолио;
  • Помощь в трудоустройстве;

Узнать больше

Другие термины на букву «J»

Java Core
Java Reflection API
JavaScript
JDBC
Jira
JOIN
JSON

Все термины

Курсы по теме

(рейтинг: 5, голосов: 2)
Добавить комментарий