JavaRush /Блоги Java /Random-TG /Муайян кардани муҳити маҳаллӣ барои рушди Java EE
zor07
Сатҳи
Санкт-Петербург

Муайян кардани муҳити маҳаллӣ барои рушди Java EE

Дар гурӯҳ нашр шудааст
Дар ин мақола мо барои иҷрои барномаҳои Java EE муҳити корӣ фароҳам меорем. Хотиррасон мекунам: дар маводи қаблӣ мо асосҳои Java EE- ро фаро гирифта будем . Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 1Мо бо муҳити зист маҷмӯи ҷузъҳои гуногуни нармафзорро дар назар дорем:
  • Java EE SDK;
  • Java EE Application Server GlassFish;
  • Танзими IntelliJ IDEA.
Ҳадафҳои асосии ин мавод:
  1. Нишон диҳед, ки чӣ гуна шумо метавонед муҳити корро барои кор бо барномаҳои Java EE омода созед.
  2. Нишон диҳед, ки чӣ тавр шумо метавонед барномаҳои Java EE-ро аз IntelliJ IDEA дар serverи GlassFish ҷойгир ва иҷро кунед.
Ин аст он чизе ки мо барои ин кор мекунем:
  1. Java EE 7 SDK-ро зеркашӣ ва насб кунед.
  2. Биёед Java EE Application Server GlassFish -ро баланд бардорем.
  3. Биёед бифаҳмем, ки чӣ гуна serverро тавассути сатри фармон оғоз ва қатъ кардан лозим аст.
  4. Биёед IntelliJ IDEA-ро барои ҷойгиркунии барномаҳо дар ин server танзим кунем.
  5. Биёед замимаи намоиширо, ки дар якҷоягӣ бо serverи замимаи GlassFish ба Java EE 7 SDK дохил карда шудааст, ҷойгир ва иҷро кунем.
Ин мақола барои таҳиягарони нави Java, ки бо рушди Enterprise дар Java шинос мешаванд, муфид хоҳад буд. Инро каме омода кардани замин барои амалияи минбаъда баррасӣ кунед. Шумо маводро мефаҳмед, агар шумо бо малакаҳои асосии сатри фармони Windows (PowerShell) шинос бошед. Версияҳои ҷузъҳои нармафзор, ки дар ин мақола истифода мешаванд:
  • GlassFish 4.0;
  • IntelliJ IDEA 2019.3.1 (ниҳоӣ);
  • Java EE SDK 7.

Насб кардани Java EE SDK

Ҳолати муҳим. Пеш аз насб кардани Java EE SDK, шумо бояд боварӣ ҳосил кунед, ки Java SE SDK пешакӣ насб шудааст.
  1. Аввалан, мо бояд SDK-ро зеркашӣ кунем. Барои ин, шумо метавонед дар системаи ҷустуҷӯӣ нависед: "Java EE SDK 7" ё мустақиман ба саҳифаи зеркашии sdk аз вебсайти Oracle гузаред.

  2. Аз рӯйхати SDK-ҳои пешниҳодшуда, шумо бояд якееро интихоб кунед, ки барои платформаи шумо мувофиқ аст. Дар мақола насб кардани тақсимот тасвир шудааст: "java_ee_sdk-7-jdk7-windows-x64-ml.exe"

  3. Файли насбкуниро иҷро кунед. Ҳангоми оғозёбӣ, хатогии зерин метавонад рух диҳад (агар ин рӯй надиҳад, шумо метавонед насбро идома диҳед):

    Таъсиси муҳити маҳаллӣ барои рушди Java EE - 2

    Ин маънои онро дорад, ки насбкунанда натавонист роҳро ба муҳити қаблан насбшудаи Java Runtime Environment пайдо кунад. Хатогиро тавассути гузариши роҳ ба JRE дастӣ бо истифода аз сатри фармон ислоҳ кардан мумкин аст. Барои ин, шумо бояд файли насбкуниро тавассути PowerShell иҷро кунед ва роҳро ба JRE-и қаблан насбшуда тавассути параметри -j гузаронед.

    Масалан, ба ин монанд:

    Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 3
  4. Тартиби насби минбаъда барои аксари барномаҳо хеле маъмул аст. Ба шумо танҳо лозим аст, ки тугмаҳои Next ва Install -ро пахш кунед.

    Барнома Java EE SDK ва инчунин serverи GlassFish-ро насб мекунад, ки пас аз ба итмом расидани насб кор мекунад ва барои истифода омода мешавад.

  5. Барои боварӣ ҳосил кардани он, ки serverи GlassFish кор мекунад, пас аз ба итмом расидани насб, шумо метавонед панели администратори serverро кушоед, ки дар ин ҷо дастрас хоҳад буд: http://localhost:4848/

    Скриншот дар зер:

    Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 4

Оғози GlassFish тавассути сатри фармон

Ҳамин тавр, server кор мекунад ва кор мекунад, аммо оғози server аз ҷониби барномаи насбкунӣ оғоз шудааст. Дар зер мо кӯшиш хоҳем кард, ки чӣ тавр худи serverро оғоз ва қатъ кунем. Аввалан, биёед чунин an objectро ҳамчун домен ошкор кунем. Домен маҷмӯи як ё якчанд мисолҳои serverи GlassFish мебошад, ки аз ҷониби як serverи маъмурӣ идора карда мешавад. Ҳангоми насб кардани serverи GlassFish, домени пешфарз сохта мешавад - domain1. Компонентҳои зерин бо он алоқаманданд:
  • Порт-server (пешфарз 8080);
  • Порт-serverи маъмурӣ (пешфарз 4848);
  • Номи корбар ва пароли администратор (пешфарз администратор аст ва бо нобаёнӣ парол лозим нест).
Domain1 дорои арзишҳои пешфарз ба он таъин шудааст. Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 5Барои оғоз ва қатъ кардани server, тақсимоти GlassFish якчанд скриптҳоро дар бар мегирад, ки ба таври нобаёнӣ дар директорияи зерин ҷойгиранд: C:\glassfish4\glassfish\bin Барои оғоз ва қатъ кардани serverи GlassFish тавассути сатри фармон, шумо метавонед скрипти asadmin-ро истифода баред. ва фармонҳои он:
asadmin start-domain domain_name
asadmin stop-domain domain_name
Биёед кӯшиш кунем, ки serverро қатъ кунем (зеро он аллакай пас аз насб кор мекунад) тавассути иҷро кардани PowerShell аз зердиректорияи C:\glassfish4\glassfish\bin : Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 6Сервер қатъ карда шуд. Акнун биёед онро иҷро кунем: Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 7

Мо аввалин барномаи Java EE-ро таҳлил мекунем, Dukes-age

Минбаъд мо як барномаи намоишии Java EE-ро дида мебароем: dukes-age. Ин барнома ба Java EE SDK ҳамроҳ бо замимаи аввала дохил карда шудааст. Тавсифи ин барномаҳо дар вебсайти расмии ҳуҷҷатгузории Oracle дар бахшҳои 3 ва 4 -и курси муқаддимавӣ оид ба Java EE барои таҳиягарони навгони Java EE оварда шудаанд . Дар ин мақола, мо ба таври мухтасар ба замимаи дюкс-синну назар мекунем ва раванди ба кор андохтани ин барномаро дар serverи GlassFish аз муҳити таҳияи IntelliJ IDEA муфассалтар дида мебароем. Барнома дар дохor директорияи serverи glassfish ҷойгир аст. Агар шумо ҳангоми насби Java EE SDK роҳи пешфарзро барои serverи glassfish тағир надода бошед, шумо метавонед ин барномаро дар ҷузвдон пайдо кунед: C:\glassfish4\docs\firstcup\example\dukes-age . Эҳтимол, ҳар як таҳиягари Java, шурӯъкунандагон ва ботаҷриба, ҳадди аққал як бор маскоти забони барномасозии Java - Дюкро дида бошад: Ташкor муҳити маҳаллӣ барои рушди Java EE - 8Кам одамон медонанд, ки Дюк зодрӯз дорад. Ӯ 23 майи соли 1995, вақте ки аввалин versionи намоишии технологияи Java нашр шуд, таваллуд шудааст. Замимаи Duke-age, тавре ки аз номаш бармеояд, маълумотро дар бораи синну соли Дюк таъмин мекунад. Биёед ин барномаро дар IntelliJ IDEA кушоем: Файл -> Нав -> Лоиҳа аз манбаъҳои мавҷуда... Пас ба ҷузвдон бо барномаи Dukes-age гузаред, ки ба таври нобаёнӣ дар 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 бо як усул аст - getText(). Агар шумо рамзи ин усулро тафтиш кунед, маълум мешавад, ки усул шумораи солҳоеро, ки аз рӯзи таваллуди Герцог гузаштаанд, бармегардонад. Яъне, усул синну соли Дюкро бармегардонад. Синф захираест дар контексти REST.
  1. Эзоҳ дар болои синф @Path("dukesAge")роҳи URI-ро муайян мекунад, ки зангҳо ба он аз ҷониби ин синф коркард мешаванд.
  2. Шарҳи дар боло овардашуда @GETба мо мегӯяд, ки ин усул дархостҳои GET-ро коркард мекунад.
  3. Эзоҳ @Produces("text/plain")навъи медиаи посух ба дархостро муайян мекунад. Фарз кардан душвор нест, ки ин усул getText()посухҳоро бо навъи медиа тавлид хоҳад кард: матн / оддӣ.
Биёед инчунин файли конфигуратсияи 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>
Дар ин файл, дар дохor тег servlet-mappingтег url-patternбо арзиши муайян карда мешавад /webapi/*. Дар ин ҷо як нуқтаи муайяни реша муайян карда мешавад, ки зангҳо ба он аз ҷониби хидмат коркард карда мешаванд. Агар бо эзоҳ якҷоя карда шавад @Path("dukesAge"), маълум мешавад, ки барои гирифтани маълумот дар бораи синну соли Дюк, шумо бояд ба суроғаи /webapi/dukesAge муроҷиат кунед.

Насб кардани IntelliJ IDEA барои иҷро кардани барномаи Java EE дар serverи GlassFish

Акнун, ки мо дар бораи барномаи Dukes-age тасаввуроти хеле умумӣ дорем (дар бораи он дар сайти Oracle бештар хонед ), биёед IntelliJ IDEA-ро танзим кунем, то ин барномаро аз IDE-и худ иҷро кунем. Танзими IntelliJ IDEA
  1. Барои ин, ба менюи Иҷро кардан -> Таҳрири конфигуратсияҳо гузаред.
  2. Панели конфигуратсияҳои иҷро/debug кушода мешавад: Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 11
  3. Мо бояд конфигуратсияи навро илова кунем. Барои ин, аломати плюсро клик кунед ё тугмаи Hot+Insert-ро истифода баред. Дар рӯйхате, ки кушода мешавад, Server GlassFish -> Local -ро интихоб кунед: Ташкor муҳити маҳаллӣ барои рушди Java EE - 12
  4. Дар равзанаи кушодашуда, биёед танзими конфигуратсияро оғоз кунем: Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 13
  5. Қадами навбатӣ ин нишон додани артефактҳое мебошад, ки бояд дар server ҷойгир карда шаванд. Инро метавон тавассути ҷадвали Ҷойгиркунӣ тавассути клик кардани плюс -> Артефакт анҷом дод. Муайян кардани муҳити маҳаллӣ барои рушди Java EE - 14
  6. Dukes-age:war-ро интихоб кунед ва OK-ро пахш кунед: Ташкor муҳити маҳаллӣ барои рушди Java EE - 15
  7. Баъдан, конфигуратсияи моро бо пахш кардани Apply ва сипас Хуб захира кунед.
Конфигуратсия сохта шудааст!

Оғози барнома

Акнун биёед кӯшиш кунем, ки барномаро иҷро кунем.
  1. Барои ин шумо метавонед клавиатураи Alt+Shift+F10 ё тавассути менюи Иҷро -> Иҷро...

    Ва конфигуратсияеро, ки мо сохтаем, интихоб кунед:

    Таъсиси муҳити маҳаллӣ барои рушди Java EE - 16

  2. Пас аз ин мо дар панели хидматҳо сабтҳои оғозёбиро мебинем:

    Ташкor муҳити маҳаллӣ барои рушди Java EE - 17
  3. Пас, агар ҳама чиз мувофиқи дастурҳо анҷом дода шавад, браузер кушода мешавад ва маълум мешавад, ки ҳеҷ чиз кор намекунад:

    Таъсиси муҳити маҳаллӣ барои рушди Java EE - 18
Ҷаҳони IT чунин аст. Ҳатто агар ҳама чиз дуруст анҷом дода шавад, чизе метавонад кор накунад. Аммо хавотир нашав: шумо метавонед фавран тасвир кунед, ки чӣ гуна онро дуруст кардан лозим аст, аммо он гоҳ баъзе нозукиҳо камтар аён хоҳанд шуд. Масалан, URL-и IDEA, ки моро ҳангоми оғози барнома ба он равона мекунад, чӣ гуна тавлид мешавад? Биёед ба он диққат диҳем. Мо ба http://localhost:8080/dukes-age-7.0.1/ равона карда шудем . Барои фаҳмидани он ки ин аз куҷо пайдо шудааст (/dukes-age-7.0.1/), биёед ба панели администратори serverи GlassFish биравем. Дар менюи чап, Барномаҳо -ро клик кунед. Минбаъд шумо замимаҳои ҷойгиршуда, аз ҷумла дюкс-сингро хоҳед дид. Вақте ки шумо барномаи Dukes-age-ро интихоб мекунед, шумо метавонед баъзе хусусиятҳои онро, аз ҷумла ҷузъи Context-Root -ро бинед: Ташкor муҳити маҳаллӣ барои рушди Java EE - 19dukes-age-7.0.1 ном ва versionи барнома аст. Нуқтаи реша. Ҳама дархостҳое, ки дюкс-синн коркард хоҳад кард, бояд бо префикси /dukes-age-7.0.1/ оғоз шавад. Ҳамин тавр, мо як нуқтаи реша дорем: /dukes-age-7.0.1. Инчунин, мо қаблан муҳокима карда будем, ки барномаи мо дархостҳоро ба /webapi/dukesAge ҳал мекунад. Биёед ин ду чизро якҷоя кунем ва конфигуратсияи худро навсозӣ кунем.
  1. Барои ин, биёед ба IntelliJ IDEA баргардем ва баъд ба меню: Иҷро кардан -> Таҳрири конфигуратсияҳо...

  2. Биёед конфигуратсияи қаблан захирашударо интихоб кунем ва URL-ро мувофиқи тасвири зер навсозӣ кунем:

    Ташкor муҳити маҳаллӣ барои рушди Java EE - 20
  3. Биёед конфигуратсияро захира кунем ва замимаи худро бо истифода аз тугмаи Ctrl+Shift+F10 ё бо истифода аз тугмаи махсус дар панели хидматҳо бозоғоз кунем:

    Ташкor муҳити маҳаллӣ барои рушди Java EE - 21
  4. Пас аз бозоғозӣ, агар ҳама чиз дуруст анҷом дода шуда бошад, мо синну соли Дюкро мебинем:

    Ташкor муҳити маҳаллӣ барои рушди Java EE - 22
бузург. Мо ниҳоят фаҳмидем, ки Дюк 24 сола аст. Агар шумо тамоми қадамҳои дар боло тавсифшударо дар тӯли ду моҳи оянда, аз моҳи апрели соли 2020 такрор накунед, пас Дюк эҳтимол каме пир мешавад.

Хулоса

Дар ин мақола мо дида баромадем, ки чӣ тавр шумо метавонед муҳити маҳаллии худро барои кор бо барномаҳои Java EE бо истифода аз мисоли serverи GlassFish 4.0, муҳити таҳияи IntelliJ IDEA 2019.3.1 (Ultimate) ва инчунин Java EE SDK versionи 7 танзим кунед. Мо дида баромадем, ки чӣ тавр шумо метавонед:
  • Java EE SDK, инчунин serverи GlassFish -ро зеркашӣ ва насб кунед;
  • қатъ ва оғоз кардани serverи GlassFish тавассути PowerShell;
  • IntelliJ IDEA-ро танзим кунед, то шумо метавонед барномаҳои Java EE-ро аз IDE ба serverи GlassFish ҷойгир кунед ва онҳоро фавран оғоз кунед.

Вазифаи бонус

  1. Ҳамаи қадамҳои тавсифшударо худатон такрор кунед.
  2. Курси муқаддимавӣ оид ба Java EE барои таҳиягарони ибтидоии Java EE аз Oracle омӯзед .
  3. Элемент бо ситорача. Кӯшиш кунед, ки барномаи намоишии дуюми косаро худатон ҷойгир кунед. Ин барнома интерактивӣтар аст ва инчунин бо замимаи синну соли dukes мутақобила мекунад. Барои анҷом додани ин қадам, шумо бояд мустақилона саволҳои зеринро фаҳмед:
    1. Чӣ гуна махзани маълумотро дар дохor serverи glassFish фаъол кардан мумкин аст;
    2. Чӣ тавр ду барномаро бо ҳам муттаҳид кардан мумкин аст (дар дохor косаи якум роҳ ба нуқтаи ниҳоии синну сол, ки мо дар ин мақола муҳокима кардем, нишон дода мешавад);
    3. Чӣ тавр сохтани конфигуратсияи нав дар Intellij IDEA барои ҷойгиркунии аввалин коса (монанди он чизе ки дар ин мақола нишон дода шудааст);
    4. Эҳтимол бисёр саволҳои дигар)
PS Монеа барои воридшавӣ баланд аст, аммо оё ин чизест, ки шуморо бармеангезад?
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION