JavaRush /Java Blog /Random-TL /Pagse-set up ng lokal na kapaligiran para sa pagpapaunlad...
zor07
Antas
Санкт-Петербург

Pagse-set up ng lokal na kapaligiran para sa pagpapaunlad ng Java EE

Nai-publish sa grupo
Sa artikulong ito, magse-set up kami ng working environment para sa pagpapatakbo ng mga application ng Java EE. Ipaalala ko sa iyo: sa nakaraang materyal ay tinakpan namin ang mga pangunahing kaalaman ng Java EE . Настройка локального окружения для Java EE разработки - 1Sa kapaligiran ang ibig naming sabihin ay isang set ng iba't ibang bahagi ng software:
  • Java EE SDK;
  • Java EE Application Server GlassFish;
  • Pagse-set up ng IntelliJ IDEA.
Ang mga pangunahing layunin ng materyal na ito:
  1. Ipakita kung paano ka makakapaghanda ng isang kapaligiran sa pagtatrabaho para sa pagtatrabaho sa mga aplikasyon ng Java EE.
  2. Ipakita kung paano ka makakapag-deploy at makakapagpatakbo ng mga Java EE application mula sa IntelliJ IDEA sa GlassFish server.
Narito ang gagawin namin para dito:
  1. I-download at i-install ang Java EE 7 SDK.
  2. Itaas natin ang Java EE Application Server GlassFish.
  3. Alamin natin kung paano simulan at ihinto ang server sa pamamagitan ng command line.
  4. I-configure natin ang IntelliJ IDEA para mag-deploy ng mga application sa server na ito.
  5. I-deploy at patakbuhin natin ang demo application, na, kasama ang GlassFish application server, ay kasama sa Java EE 7 SDK.
Ang artikulong ito ay magiging kapaki-pakinabang para sa mga baguhang developer ng Java na nakakakilala sa Enterprise development sa Java. Isaalang-alang ito ng isang maliit na paghahanda ng lupa para sa karagdagang pagsasanay. Mauunawaan mo ang materyal kung pamilyar ka sa mga pangunahing kasanayan sa Windows command line (PowerShell). Mga bersyon ng mga bahagi ng software na ginamit sa artikulong ito:
  • 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.
  1. 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.

  2. 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"

  3. 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):

    Настройка локального окружения для Java EE разработки - 2

    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:

    Настройка локального окружения для Java EE разработки - 3
  4. 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.

  5. 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:

    Настройка локального окружения для Java EE разработки - 4

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, и по умолчанию пароль не требуется).
В домене domain1 закреплены значения по умолчанию. Настройка локального окружения для Java EE разработки - 5Для запуска и остановки serverа дистрибутив GlassFish включает в себя несколько скриптов, которые по умолчанию располагаются в следующей директории: C:\glassfish4\glassfish\bin Для запуска и остановки serverа GlassFish через командную строку, можно использовать скрипт asadmin и его команды:
asadmin start-domain domain_name
asadmin stop-domain domain_name
Попробуем остановить server (так How после установки он уже запущен), запустив PowerShell из поддиректории C:\glassfish4\glassfish\bin: Настройка локального окружения для Java EE разработки - 6Сервер остановлен. Теперь запустим его: Настройка локального окружения для Java EE разработки - 7

Разбираем первое 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 — Дюка: Настройка локального окружения для Java EE разработки - 8Немногим известно, что у Дюка есть день рождения. Он родился 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: Настройка локального окружения для Java EE разработки - 9У нас откроется приложение со следующей структурой: Настройка локального окружения для Java EE разработки - 10Взглянем на 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.
  1. Аннотация над классом @Path("dukesAge") определяет URI путь, обращения на который будет обрабатывать данный класс.
  2. Аннотация над методом @GET говорит нам о том, что данный метод обрабатывает GET requestы.
  3. Аннотация @Produces("text/plain") определяет media type ответа на request. Нетрудно догадаться, что метод getText() будет формировать ответы с media type: text/plain.
Взглянем также на конфигурационный файл web.xml:
<?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
  1. Для этого переходим в меню Run -> Edit Configurations.
  2. У нас откроется панель Run/Debug Configurations: Настройка локального окружения для Java EE разработки - 11
  3. Нам необходимо добавить новую конфигурацию. Для этого нажмем на плюсик, либо воспользуемся хоткеем Alt+Insert. В открывшемся списке выберем GlassFish Server -> Local: Настройка локального окружения для Java EE разработки - 12
  4. В открывшемся окне приступим к настройке конфигурации: Настройка локального окружения для Java EE разработки - 13
  5. Следующим шагом укажем артефакты, которые необходимо будет деплоить на server. Это можно сделать через вкладку Deployment, нажав на плюс -> Artifact... Настройка локального окружения для Java EE разработки - 14
  6. Выбираем dukes-age:war и нажимаем OK: Настройка локального окружения для Java EE разработки - 15
  7. Далее сохраняем нашу конфигурацию, нажав на Apply, а затем OK.
Конфигурация создана!

Запуск applications

Теперь давайте попробуем запустить приложение.
  1. Для этого можно воспользоваться хоткеем Alt+Shift+F10, либо через меню Run -> Run…

    И выбираем созданную нами конфигурацию dukes-age:

    Настройка локального окружения для Java EE разработки - 16

  2. После этого мы видим логи запуска в панели Services:

    Настройка локального окружения для Java EE разработки - 17
  3. Затем, если все сделано согласно инструкции, откроется браузер и станет понятно, что ничего не работает:

    Настройка локального окружения для Java EE разработки - 18
Таков уж мир IT. Даже если все сделано правильно, что-то может не работать. Но не стоит переживать: можно было бы сразу описать, How сделать правильно, но тогда некоторые нюансы были бы менее очевидны. Например, How формируется url, на который нас направляет IDEA при запуске applications? Обратим на него внимание. Нас перенаправor на http://localhost:8080/dukes-age-7.0.1/. Whatбы понять, откуда это взялось (/dukes-age-7.0.1/), перейдем в администраторскую панель serverа GlassFish. В левом меню необходимо кликнуть на пункт Applications. Далее вы увидите задеплоенные applications, в том числе dukes-age. При выборе applications dukes-age, можно увидеть некоторые его характеристики, в том числе и пункт Context-Root: Настройка локального окружения для Java EE разработки - 19dukes-age-7.0.1 — это Name и version applications. Корневая точка. Все requestы, которые будет обрабатывать dukes-age, должны начинаться с префикса /dukes-age-7.0.1/. Итак, у нас есть корневая точка: /dukes-age-7.0.1. Также, ранее мы обсуждали, что наше приложение будет обрабатывать обращения на /webapi/dukesAge. Совместим эти две вещи и обновим нашу конфигурацию.
  1. Для этого вернемся в IntelliJ IDEA, затем в меню: Run -> Edit Configurations…

  2. Выберем ранее сохраненную конфигурацию и обновим URL в соответствии со скрином ниже:

    Настройка локального окружения для Java EE разработки - 20
  3. Сохраним конфигурацию и перезапустим наше приложение с помощью хоткея Ctrl+Shift+F10, либо с помощью специальной кнопки, на панели Services:

    Настройка локального окружения для Java EE разработки - 21
  4. После перезапуска, если все было сделано правильно, мы увидим возраст Дюка:

    Настройка локального окружения для Java EE разработки - 22
Отлично. Наконец-то мы выяснor, что Дюку 24 года. Если вы не повторите все описанные шаги в течении ближайшей пары месяцев, начиная с апреля 2020, то Дюк, вероятно, немного состарится.

Заключение

В данной статье мы разобрали, 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 и сразу же запускать их.

Бонусное задание

  1. Повторить все описанные шаги самостоятельно.
  2. Изучить вводный курс по Java EE для начинающих Java EE разработчиков от Oracle.
  3. Пункт со звездочкой. Попробовать задеплоить самостоятельно второе демонстрационное приложение first-cup. Данное приложение более интерактивное, а также оно взаимодействует с приложением dukes-age. Для выполнения данного пункта необходимо будет самостоятельно разобраться с такими вопросами:
    1. Как включить базу данных внутри serverа glassFish;
    2. Как интегрировать два applications друг с другом (внутри first-cup указать путь до эндпоинта dukes-age, который мы обсуждали в данной статье);
    3. Как создать новую конфигурацию в Intellij IDEA для деплоя first-cup (по аналогии с тем, How было показано в данной статье);
    4. Возможно, многими другими вопросами )
P.S. Порог вхождения высок, но разве не это вас мотивирует?
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION