- Java EE SDK;
- Java EE Application Server GlassFish;
- Танзими IntelliJ IDEA.
- Нишон диҳед, ки чӣ гуна шумо метавонед муҳити корро барои кор бо барномаҳои Java EE омода созед.
- Нишон диҳед, ки чӣ тавр шумо метавонед барномаҳои Java EE-ро аз IntelliJ IDEA дар serverи GlassFish ҷойгир ва иҷро кунед.
- Java EE 7 SDK-ро зеркашӣ ва насб кунед.
- Биёед Java EE Application Server GlassFish -ро баланд бардорем.
- Биёед бифаҳмем, ки чӣ гуна serverро тавассути сатри фармон оғоз ва қатъ кардан лозим аст.
- Биёед IntelliJ IDEA-ро барои ҷойгиркунии барномаҳо дар ин server танзим кунем.
- Биёед замимаи намоиширо, ки дар якҷоягӣ бо serverи замимаи GlassFish ба Java EE 7 SDK дохил карда шудааст, ҷойгир ва иҷро кунем.
- GlassFish 4.0;
- IntelliJ IDEA 2019.3.1 (ниҳоӣ);
- Java EE SDK 7.
Насб кардани Java EE SDK
Ҳолати муҳим. Пеш аз насб кардани Java EE SDK, шумо бояд боварӣ ҳосил кунед, ки Java SE SDK пешакӣ насб шудааст.-
Аввалан, мо бояд SDK-ро зеркашӣ кунем. Барои ин, шумо метавонед дар системаи ҷустуҷӯӣ нависед: "Java EE SDK 7" ё мустақиман ба саҳифаи зеркашии sdk аз вебсайти Oracle гузаред.
-
Аз рӯйхати SDK-ҳои пешниҳодшуда, шумо бояд якееро интихоб кунед, ки барои платформаи шумо мувофиқ аст. Дар мақола насб кардани тақсимот тасвир шудааст: "java_ee_sdk-7-jdk7-windows-x64-ml.exe"
-
Файли насбкуниро иҷро кунед. Ҳангоми оғозёбӣ, хатогии зерин метавонад рух диҳад (агар ин рӯй надиҳад, шумо метавонед насбро идома диҳед):
Ин маънои онро дорад, ки насбкунанда натавонист роҳро ба муҳити қаблан насбшудаи Java Runtime Environment пайдо кунад. Хатогиро тавассути гузариши роҳ ба JRE дастӣ бо истифода аз сатри фармон ислоҳ кардан мумкин аст. Барои ин, шумо бояд файли насбкуниро тавассути PowerShell иҷро кунед ва роҳро ба JRE-и қаблан насбшуда тавассути параметри -j гузаронед.
Масалан, ба ин монанд:
-
Тартиби насби минбаъда барои аксари барномаҳо хеле маъмул аст. Ба шумо танҳо лозим аст, ки тугмаҳои Next ва Install -ро пахш кунед.
Барнома Java EE SDK ва инчунин serverи GlassFish-ро насб мекунад, ки пас аз ба итмом расидани насб кор мекунад ва барои истифода омода мешавад. -
Барои боварӣ ҳосил кардани он, ки serverи GlassFish кор мекунад, пас аз ба итмом расидани насб, шумо метавонед панели администратори serverро кушоед, ки дар ин ҷо дастрас хоҳад буд: http://localhost:4848/
Скриншот дар зер:
Оғози GlassFish тавассути сатри фармон
Ҳамин тавр, server кор мекунад ва кор мекунад, аммо оғози server аз ҷониби барномаи насбкунӣ оғоз шудааст. Дар зер мо кӯшиш хоҳем кард, ки чӣ тавр худи serverро оғоз ва қатъ кунем. Аввалан, биёед чунин an objectро ҳамчун домен ошкор кунем. Домен маҷмӯи як ё якчанд мисолҳои serverи GlassFish мебошад, ки аз ҷониби як serverи маъмурӣ идора карда мешавад. Ҳангоми насб кардани serverи GlassFish, домени пешфарз сохта мешавад - domain1. Компонентҳои зерин бо он алоқаманданд:- Порт-server (пешфарз 8080);
- Порт-serverи маъмурӣ (пешфарз 4848);
- Номи корбар ва пароли администратор (пешфарз администратор аст ва бо нобаёнӣ парол лозим нест).
asadmin start-domain domain_name
asadmin stop-domain domain_name
Биёед кӯшиш кунем, ки serverро қатъ кунем (зеро он аллакай пас аз насб кор мекунад) тавассути иҷро кардани PowerShell аз зердиректорияи C:\glassfish4\glassfish\bin : Сервер қатъ карда шуд. Акнун биёед онро иҷро кунем:
Мо аввалин барномаи 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 - Дюкро дида бошад: Кам одамон медонанд, ки Дюк зодрӯз дорад. Ӯ 23 майи соли 1995, вақте ки аввалин versionи намоишии технологияи Java нашр шуд, таваллуд шудааст. Замимаи Duke-age, тавре ки аз номаш бармеояд, маълумотро дар бораи синну соли Дюк таъмин мекунад. Биёед ин барномаро дар IntelliJ IDEA кушоем: Файл -> Нав -> Лоиҳа аз манбаъҳои мавҷуда... Пас ба ҷузвдон бо барномаи Dukes-age гузаред, ки ба таври нобаёнӣ дар 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 бо як усул аст - getText()
. Агар шумо рамзи ин усулро тафтиш кунед, маълум мешавад, ки усул шумораи солҳоеро, ки аз рӯзи таваллуди Герцог гузаштаанд, бармегардонад. Яъне, усул синну соли Дюкро бармегардонад. Синф захираест дар контексти REST.
- Эзоҳ дар болои синф
@Path("dukesAge")
роҳи URI-ро муайян мекунад, ки зангҳо ба он аз ҷониби ин синф коркард мешаванд. - Шарҳи дар боло овардашуда
@GET
ба мо мегӯяд, ки ин усул дархостҳои GET-ро коркард мекунад. - Эзоҳ
@Produces("text/plain")
навъи медиаи посух ба дархостро муайян мекунад. Фарз кардан душвор нест, ки ин усулgetText()
посухҳоро бо навъи медиа тавлид хоҳад кард: матн / оддӣ.
<?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- Барои ин, ба менюи Иҷро кардан -> Таҳрири конфигуратсияҳо гузаред.
- Панели конфигуратсияҳои иҷро/debug кушода мешавад:
- Мо бояд конфигуратсияи навро илова кунем. Барои ин, аломати плюсро клик кунед ё тугмаи Hot+Insert-ро истифода баред. Дар рӯйхате, ки кушода мешавад, Server GlassFish -> Local -ро интихоб кунед:
- Дар равзанаи кушодашуда, биёед танзими конфигуратсияро оғоз кунем:
- Қадами навбатӣ ин нишон додани артефактҳое мебошад, ки бояд дар server ҷойгир карда шаванд. Инро метавон тавассути ҷадвали Ҷойгиркунӣ тавассути клик кардани плюс -> Артефакт анҷом дод.
- Dukes-age:war-ро интихоб кунед ва OK-ро пахш кунед:
- Баъдан, конфигуратсияи моро бо пахш кардани Apply ва сипас Хуб захира кунед.
Оғози барнома
Акнун биёед кӯшиш кунем, ки барномаро иҷро кунем.-
Барои ин шумо метавонед клавиатураи Alt+Shift+F10 ё тавассути менюи Иҷро -> Иҷро...
Ва конфигуратсияеро, ки мо сохтаем, интихоб кунед:
-
Пас аз ин мо дар панели хидматҳо сабтҳои оғозёбиро мебинем:
-
Пас, агар ҳама чиз мувофиқи дастурҳо анҷом дода шавад, браузер кушода мешавад ва маълум мешавад, ки ҳеҷ чиз кор намекунад:
-
Барои ин, биёед ба IntelliJ IDEA баргардем ва баъд ба меню: Иҷро кардан -> Таҳрири конфигуратсияҳо...
-
Биёед конфигуратсияи қаблан захирашударо интихоб кунем ва URL-ро мувофиқи тасвири зер навсозӣ кунем:
-
Биёед конфигуратсияро захира кунем ва замимаи худро бо истифода аз тугмаи Ctrl+Shift+F10 ё бо истифода аз тугмаи махсус дар панели хидматҳо бозоғоз кунем:
-
Пас аз бозоғозӣ, агар ҳама чиз дуруст анҷом дода шуда бошад, мо синну соли Дюкро мебинем:
Хулоса
Дар ин мақола мо дида баромадем, ки чӣ тавр шумо метавонед муҳити маҳаллии худро барои кор бо барномаҳои 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 ҷойгир кунед ва онҳоро фавран оғоз кунед.
Вазифаи бонус
- Ҳамаи қадамҳои тавсифшударо худатон такрор кунед.
- Курси муқаддимавӣ оид ба Java EE барои таҳиягарони ибтидоии Java EE аз Oracle омӯзед .
- Элемент бо ситорача. Кӯшиш кунед, ки барномаи намоишии дуюми косаро худатон ҷойгир кунед. Ин барнома интерактивӣтар аст ва инчунин бо замимаи синну соли dukes мутақобила мекунад. Барои анҷом додани ин қадам, шумо бояд мустақилона саволҳои зеринро фаҳмед:
- Чӣ гуна махзани маълумотро дар дохor serverи glassFish фаъол кардан мумкин аст;
- Чӣ тавр ду барномаро бо ҳам муттаҳид кардан мумкин аст (дар дохor косаи якум роҳ ба нуқтаи ниҳоии синну сол, ки мо дар ин мақола муҳокима кардем, нишон дода мешавад);
- Чӣ тавр сохтани конфигуратсияи нав дар Intellij IDEA барои ҷойгиркунии аввалин коса (монанди он чизе ки дар ин мақола нишон дода шудааст);
- Эҳтимол бисёр саволҳои дигар)
GO TO FULL VERSION