- Java EE SDK;
- Java EE Application Server GlassFish;
- Pagse-set up ng IntelliJ IDEA.
- Ipakita kung paano ka makakapaghanda ng isang kapaligiran sa pagtatrabaho para sa pagtatrabaho sa mga aplikasyon ng Java EE.
- Ipakita kung paano ka makakapag-deploy at makakapagpatakbo ng mga Java EE application mula sa IntelliJ IDEA sa GlassFish server.
- I-download at i-install ang Java EE 7 SDK.
- Itaas natin ang Java EE Application Server GlassFish.
- Alamin natin kung paano simulan at ihinto ang server sa pamamagitan ng command line.
- I-configure natin ang IntelliJ IDEA para mag-deploy ng mga application sa server na ito.
- I-deploy at patakbuhin natin ang demo application, na, kasama ang GlassFish application server, ay kasama sa Java EE 7 SDK.
- GlassFish 4.0;
- IntelliJ IDEA 2019.3.1 (Ultimate);
- Java EE SDK 7.
Pag-install ng Java EE SDK
Mahalagang kondisyon. Bago i-install ang Java EE SDK, dapat mong tiyakin na ang Java SE SDK ay paunang naka-install.-
Una, kailangan nating i-download ang SDK. Upang gawin ito, maaari kang mag-type sa isang search engine: "Java EE SDK 7", o direktang pumunta sa pahina ng pag-download ng sdk mula sa website ng Oracle.
-
Mula sa listahan ng mga SDK na ibinigay, kailangan mong piliin ang isa na angkop para sa iyong platform. Inilalarawan ng artikulo ang pag-install ng pamamahagi: "java_ee_sdk-7-jdk7-windows-x64-ml.exe"
-
Patakbuhin ang file ng pag-install. Sa panahon ng pagsisimula, maaaring mangyari ang sumusunod na error (kung hindi ito nangyari, maaari mo lamang ipagpatuloy ang pag-install):
Nangangahulugan ito na hindi mahanap ng installer ang landas patungo sa paunang naka-install na Java Runtime Environment. Ang error ay maaaring itama sa pamamagitan ng pagpasa ng landas sa JRE nang manu-mano gamit ang command line. Upang gawin ito, kailangan mong patakbuhin ang file ng pag-install sa pamamagitan ng PowerShell at ipasa ang landas sa paunang naka-install na JRE sa pamamagitan ng -j parameter.
Halimbawa, tulad nito:
-
Ang karagdagang pamamaraan ng pag-install ay medyo pangkaraniwan para sa karamihan ng mga programa. Ang kailangan mo lang gawin ay mag-click sa Susunod at I-install na mga pindutan.
Ang programa ay mag-i-install ng Java EE SDK, pati na rin ang GlassFish server, na, sa pagkumpleto ng pag-install, ay magiging handa at handa nang gamitin. -
Upang matiyak na gumagana ang GlassFish server, pagkatapos makumpleto ang pag-install, maaari mong buksan ang admin panel ng server, na magiging available sa: http://localhost:4848/
Screenshot sa ibaba:
Nagsisimula at humihinto ang GlassFish sa pamamagitan ng command line
Итак, server поднят и работает, но старт serverа был инициирован программой установки. Ниже попробуем разобраться с тем, How стартовать и останавливать server самостоятельно. Для начала раскроем такую сущность, How домен. Домен — это набор одного or нескольких экземпляров (инстансов) GlassFish serverа, управляемых одним serverом администрирования. При установке serverа GlassFish создается домен по умолчанию — domain1. С ним связаны такие компоненты:- Порт serverа (по умолчанию 8080);
- Порт serverа администрирования (по умолчанию 4848);
- Name пользователя и пароль администратора (по умолчанию — admin, и по умолчанию пароль не требуется).
asadmin start-domain domain_name
asadmin stop-domain domain_name
Попробуем остановить server (так How после установки он уже запущен), запустив PowerShell из поддиректории C:\glassfish4\glassfish\bin: Сервер остановлен. Теперь запустим его:
Разбираем первое Java EE приложение, dukes-age
Далее мы рассмотрим демонстрационное Java EE приложение: dukes-age. Данное приложение включается в поставку Java EE SDK совместно с приложением first-cup. Описание данных приложений представлено на сайте с официальной documentацией Oracle в разделах 3 и 4 вводного курса по Java EE для начинающих Java EE разработчиков. В данной статье мы кратко рассмотрим приложение dukes-age и более подробно разберем процесс запуска данного applications на serverе GlassFish из среды разработки IntelliJ IDEA. Приложение располагается внутри директории serverа glassfish. Если вы не меняли путь по умолчанию для serverа glassfish при установке Java EE SDK, вы сможете найти данное приложение в папке: C:\glassfish4\docs\firstcup\example\dukes-age. Наверное, каждый Java разработчик, начинающий и опытный, хотя бы раз видел талисман языка программирования Java — Дюка: Немногим известно, что у Дюка есть день рождения. Он родился 23 мая 1995 года, когда была опубликована первая демо-version технологии Java. Приложение dukes-age, How следует из названия, выдает информацию о возрасте Дюка. Откроем данное приложение в IntelliJ IDEA: File -> New -> Project From Existing Sources… Затем перейдем в папку с приложением dukes-age, расположенную по умолчанию по addressу C:\glassfish4\docs\firstcup\example\dukes-age, выберем файл pom.xml и нажмем кнопку OK: У нас откроется приложение со следующей структурой: Взглянем на code классаDukesAgeResource
:
package firstcup.dukesage.resource;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
/**
* REST Web Service
*
*/
@Path("dukesAge")
public class DukesAgeResource {
/** Creates a new instance of DukesAgeResource */
public DukesAgeResource() {
}
/**
* Retrieves representation of an instance of DukesAgeResource
* @return an instance of java.lang.String
*/
@GET
@Produces("text/plain")
public String getText() {
// Create a new Calendar for Duke's birthday
Calendar dukesBirthday = new GregorianCalendar(1995, Calendar.MAY, 23);
// Create a new Calendar for today
Calendar now = GregorianCalendar.getInstance();
// Subtract today's year from Duke's birth year, 1995
int dukesAge = now.get(Calendar.YEAR) - dukesBirthday.get(Calendar.YEAR);
dukesBirthday.add(Calendar.YEAR, dukesAge);
// If today's date is before May 23, subtract a year from Duke's age
if (now.before(dukesBirthday)) {
dukesAge--;
}
// Return a String representation of Duke's age
return "" + dukesAge;
}
}
Это JAX-RS RESTful web-сервис с одним методом — getText()
. Если изучить code данного метода, станет ясно, что метод возвращает количество лет, прошедших со дня рождения Дюка. То есть, метод возвращает возраст Дюка. Класс является ресурсом в контексте REST.
- Аннотация над классом
@Path("dukesAge")
определяет URI путь, обращения на который будет обрабатывать данный класс. - Аннотация над методом
@GET
говорит нам о том, что данный метод обрабатывает GET requestы. - Аннотация
@Produces("text/plain")
определяет media type ответа на request. Нетрудно догадаться, что методgetText()
будет формировать ответы с media type: text/plain.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/webapi/*</url-pattern>
</servlet-mapping>
</web-app>
В данном файле, внутри тега servlet-mapping
, определен тег url-pattern
со meaningм /webapi/*
. Здесь определяется некоторая корневая точка, обращения на которую будут обрабатываться в дальнейшем service. Если сложить с аннотацией @Path("dukesAge")
, выходит, чтобы получить информацию о возрасте Дюка, необходимо обратиться на address /webapi/dukesAge.
Настройка IntelliJ IDEA для запуска Java EE applications на serverе GlassFish
Получив весьма обобщенное представление о приложении dukes-age (подробнее читайте о нем на сайте Oracle), давайте настроим IntelliJ IDEA, чтобы мы могли запускать это приложение из нашей IDE. Настройка IntelliJ IDEA- Для этого переходим в меню Run -> Edit Configurations.
- У нас откроется панель Run/Debug Configurations:
- Нам необходимо добавить новую конфигурацию. Для этого нажмем на плюсик, либо воспользуемся хоткеем Alt+Insert. В открывшемся списке выберем GlassFish Server -> Local:
- В открывшемся окне приступим к настройке конфигурации:
- Следующим шагом укажем артефакты, которые необходимо будет деплоить на server. Это можно сделать через вкладку Deployment, нажав на плюс -> Artifact...
- Выбираем dukes-age:war и нажимаем OK:
- Далее сохраняем нашу конфигурацию, нажав на Apply, а затем OK.
Запуск applications
Теперь давайте попробуем запустить приложение.-
Для этого можно воспользоваться хоткеем Alt+Shift+F10, либо через меню Run -> Run…
И выбираем созданную нами конфигурацию dukes-age:
-
После этого мы видим логи запуска в панели Services:
-
Затем, если все сделано согласно инструкции, откроется браузер и станет понятно, что ничего не работает:
-
Для этого вернемся в IntelliJ IDEA, затем в меню: Run -> Edit Configurations…
-
Выберем ранее сохраненную конфигурацию и обновим URL в соответствии со скрином ниже:
-
Сохраним конфигурацию и перезапустим наше приложение с помощью хоткея Ctrl+Shift+F10, либо с помощью специальной кнопки, на панели Services:
-
После перезапуска, если все было сделано правильно, мы увидим возраст Дюка:
Заключение
В данной статье мы разобрали, How можно настроить свое локальное окружение для работы с Java EE applicationsми на примере serverа GlassFish 4.0, среды разработки IntelliJ IDEA 2019.3.1 (Ultimate), а также Java EE SDK версии 7. Мы рассмотрели, How можно:- скачать и установить Java EE SDK, а также server GlassFish;
- остановить и запустить server GlassFish через PowerShell;
- настроить IntelliJ IDEA, чтобы можно было деплоить Java EE applications из IDE на server GlassFish и сразу же запускать их.
Бонусное задание
- Повторить все описанные шаги самостоятельно.
- Изучить вводный курс по Java EE для начинающих Java EE разработчиков от Oracle.
- Пункт со звездочкой. Попробовать задеплоить самостоятельно второе демонстрационное приложение first-cup. Данное приложение более интерактивное, а также оно взаимодействует с приложением dukes-age. Для выполнения данного пункта необходимо будет самостоятельно разобраться с такими вопросами:
- Как включить базу данных внутри serverа glassFish;
- Как интегрировать два applications друг с другом (внутри first-cup указать путь до эндпоинта dukes-age, который мы обсуждали в данной статье);
- Как создать новую конфигурацию в Intellij IDEA для деплоя first-cup (по аналогии с тем, How было показано в данной статье);
- Возможно, многими другими вопросами )
GO TO FULL VERSION