1. Обзор
Веб-приложения — один из самых популярных вариантов использования Java. Веб-серверы и контейнеры сервлетов обеспечивают среду выполнения для развертывания приложений.
К сожалению, развертывание и устранение неполадок веб-приложений на веб-серверах иногда бывает сложным. К счастью, IDE имеют хорошую поддержку отладки для большинства приложений. Однако для отладки веб-приложений нам необходимо встроить веб-сервер в IDE.
В этом руководстве мы встроим Jetty в Eclipse, запустим и отладим на нем приложение .
2. Плагин Eclipse Jetty
Самый простой способ подключения Jetty к Eclipse — использование подключаемого модуля Eclipse Jetty.
Плагин добавляет в Eclipse управляемый сервер Jetty. Следовательно, это позволяет нам беспрепятственно развертывать и тестировать или отлаживать приложения. Также плагин предоставляет интерфейс для простой настройки сервера.
Самый быстрый способ установить плагин — через Marketplace . В eclipse Marketplace позволяет нам устанавливать плагины несколькими щелчками мыши:
3. Образец заявления
Давайте теперь разработаем простое веб-приложение.
Во-первых, давайте добавим файл web.xml
в папку /src/main/webapp/WEB-INF
нашего проекта:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/webapp_4_0.xsd"
version="4.0">
<welcome-file-list>
<welcome-file>helloworld.html</welcome-file>
</welcome-file-list>
</web-app>
Давайте добавим простой статический файл. В нашем случае helloworld.html
выглядит так:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Hello World</title>
</head>
<body>Hello World!</body>
</html>
Обратите внимание, что мы не добавили никаких сопоставлений сервлетов в наш файл web.xml
.
Вместо этого мы собираемся использовать аннотации Servlet 3 для нашего сервлета:
@WebServlet("/helloworld")
public class HelloWorldServlet extends HttpServlet
Аннотация WebServlet
позволяет сканировать и развертывать наш класс сервлета в контейнере.
Мы должны помнить, что Jetty не поддерживает аннотации с базовым модулем HTTP. Следовательно , нам нужно добавить модуль поддержки аннотаций, чтобы это работало .
Мы увидим, как это сделать, в следующих разделах.
4. Запуск приложения на Jetty
Развертывание веб-приложений на серверах зависит от поставщика. Плагин Eclipse Jetty позаботится об этом за нас. Кроме того, он интегрируется с нашим отладчиком IDE, улучшая процесс разработки.
Иногда нам нужно запустить приложение с некоторой конфигурацией. Eclipse позволяет нам сделать это с помощью Launch Configuration.
Вот как это выглядит для запуска приложений на Jetty:
Мы можем настроить следующие параметры для нашего приложения:
- Контекстный путь — префикс для URL нашего приложения.
- Порт HTTP — порт, на котором развернуто приложение, по умолчанию 8080.
- Включить HTTPS — для развертывания на HTTPS вместе с HTTP.
- Порт HTTPS — по умолчанию 8443.
Как и в случае с обычным Jetty, плагин Eclipse Jetty позволяет нам управлять зависимостями для приложения перед развертыванием. Для приложения maven мы могли бы выбрать область зависимостей как путь к классам, если мы хотим предоставить их с сервера.
5. Параметры Jetty-сервера
Jetty — это легко настраиваемый контейнер сервлетов. Существуют различные параметры, которые мы можем указать, такие как размер пула потоков
, интервал завершения работы
и т. д.
Кроме того, Jetty позволяет нам добавлять различные модули поверх базового HTTP-модуля. Вот некоторые из общих модулей, которые мы можем добавить:
- Поддержка аннотаций — включает поддержку аннотаций, специфичных для сервлетов.
- Поддержка JNDI — позволяет Jetty управлять ресурсами JNDI.
- Поддержка Websocket — позволяет реализовать сервер Websocket и клиентские реализации.
- Поддержка JMX — позволяет контролировать Jetty с помощью любого браузера MBeans.
- Поддержка JSP — позволяет компилировать и развертывать JSP в Jetty.
Эти конфигурации возможны и в Eclipse Jetty. Следовательно, мы можем настроить параметры сервера и модули из конфигурации запуска.
Наконец, плагин Eclipse Jetty 4.0 поставляется со встроенным сервером Jetty 9.3. Однако мы можем настроить внешний сервер причала для нашего приложения из конфигурации запуска.
6. Консоль Eclipse Jetty
Eclipse Jetty предоставляет консоль с некоторыми полезными командами управления. Эта консоль удобна для управления сервером или сбора некоторых показателей с сервера.
Консоль должна быть включена в конфигурации запуска . Когда он включен, мы можем выполнять команды управления из консоли Eclipse.
Вот список некоторых общих команд, которые мы можем использовать:
- Память – информация о памяти текущего приложения
- Threads — дамп потока запущенного приложения.
- Restart — перезапуск запущенного приложения.
- Остановить — изящно останавливает сервер и все запущенные на нем приложения.
7. Заключение
Плагин Eclipse Jetty — отличный способ быстро запустить или отладить приложение, встроив сервер Jetty. Это также позволяет нам настроить наше приложение и базовый сервер Jetty.
В этом руководстве мы установили подключаемый модуль Eclipse Jetty и развернули наше приложение. Мы также создали конфигурацию запуска и предоставили параметры приложения и сервера.