Синопсис
Как создавать простой сервелет Простой сервлет
Структура проекта
Cтруктура ear-проекта выглядит так:
simple-ear-parent ├──simple-jar-module │ ├──src │ │ └─main │ │ └─java │ │ └─com │ │ └─devblogs │ │ └─TextPrinter.java │ └─pom.xml ├──simple-war-module │ ├──src │ │ └─main │ │ ├─java │ │ │ └─com │ │ │ └─devblogs │ │ │ └─SimpleServlet.java │ │ ├─resources │ │ └─webapp │ │ ├─index.jsp │ │ └─WEB-INF │ │ └─web.xml │ └─pom.xml ├──simple-ear-module │ └──src │ └─main │ └─application └──pom.xml
Процесс создания ear проекта в eclipse
Как видно из схемы ear-архив представляет из себя многомодульный проект, то есть из нескольких под проектов и общего проекта враппера. Чтобы создать ear-архив с помощью мавена создадим проект-парент и включим в него три подпроекта разных типов: jar, war и ear. Родительский проект будет типа pom то есть тот который включает в себя другие подпроекты.
В проджект эксплорере нажимаем правой кнопкой по фону и выбираем New->Other… в появившемся мастере ищем категорию Maven и в ней выбираем Maven Project, жмем Next:
Появится виндоу New Maven Project. Так как мы создаем проект враппер, куда позже добавим подпроекты, то выбираем чекбокс Create a simple project (skip archetype selection). Это означает что создается пустой проект в том смысле, что в него не будут включены всякие присущие мавену каталоги src, main etc. (кроме помчика):
В следующем виндове прописываем координаты (группу, артефактАйДи) и тип проекта. Тип проекта выбираем pom:
Жимем Finish и готово, проект добавится в Project Explorer. Теперь займемся под проектами, щёлкаем по фону проджект эксплорера, делаем все тоже самое, что в предыдущий раз, только теперь в окне «выбор проекта» выбираем Maven Module:
В этом окне вводим название подпроекта, выбираем проект-парент, тот который мы создали на предыдущем шаге и на этот раз чекбокс Create a simple project (skip archetype selection) не выбран.
Далее надо выбрать тип мавенского проекта, выбираем тот который по умолчанию maven-archetype-quickstart это значит, что создаётся проект со стандартной мавенской структурой:
Прописываем группу и артифактАйДи и жмём на Finish:
Следующий подпроект будет вебовского типа. Добавляем подпроект так же как и предыдущий, выбираем Maven Module, вводим название подпроекта, выбираем проект-парент:
Типом мавенского подпроекта будет maven-archetype-webapp:
Вводим группу и артифактАйДи для вебовского подпроекта и жмём Finish:
Последний подпроект который нужно добавить будет ear-подпроект. Этот подпроект и после сборки и станет тем самым ярником, который будем деплоить на аппликэйшен сервер. Для этого к нему нужно добавить зависимости на два предыдущих созданных подпроекта, чтобы он их в себя включал. Добавляем Maven Module выбираем чекбокс Create a simple project (skip archetype selection), вводим имя подпроекта, выбираем проект-парент и жмём на Next:
Вводим группу и артифактАйДи и тип проекта вводим ear:
После того как все подпроекты добавлены, осталось только добавить зависимости на jar и веб подпроекты в помчике ear-подпроекта:
java код
TextPrinter.java
package com.devblogs; public class TextPrinter { public String getText() { return "test text"; } }
SimpleServlet.java
package com.devblogs; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SimpleServlet extends HttpServlet { private TextPrinter textPrinter = new TextPrinter(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); // Actual logic goes here. PrintWriter out = response.getWriter(); out.println("<h1>" + textPrinter.getText() + "</h1>"); } }
index.jsp
<html> <body> <h2>jsp page</h2> </body> </html>
Деплой ear-архива
Диплоить ярник будем на эппликейшен сервере Glassfish, для этого должен гласфиш быть уже скачен, сконфигурирован и запущен. Переходим в гласфише в секцию Applications и нажимаем на кнопку Deploy…:
Появится пэйджа выбора файла, кликаем по кнопке Выберите файл:
В проводнике ищем тот ear-архив который мы собрали:
Далее появится страница Deploy Applications or Modules с информацией о задеплоенным ear-архивом:
Наш задеплоенный ear-архив будет в списке рядом с другими приложениями на странице Applications:
Запуск
Запускать ничего не надо, все уже давно запущено. Как только мы задеплоили ear-архив на аппликэйшен сервер, наш ear-архив уже готов к работе. Для того чтобы проверить как он работает, открываем браузер и вводим адрес сервелета который расположен внутри ear-архива. По адресу https://localhost:8181/simple-war-module находится сам сервлет (не класс который расширяет класс HttpServlet), который по умолчанию выводит jsp-страницу:
По адресу https://localhost:8181/simple-war-module/simple-servlet ищится класс SimpleServlet, он нахоидтся с помощью дескриптора развертывания web.xml. Класс SimpleServlet выводит сообщение test text:
Ссылки
Create Maven EAR Project Eclipse
Create Ant EAR Project Eclipse
Простой модульный web проект с maven. Часть 1
Glassfish: Secure Admin must be enabled to access the DAS remotely