- ชวา EE SDK;
- แอปพลิเคชันเซิร์ฟเวอร์ Java EE GlassFish;
- การตั้งค่า IntelliJ IDEA
- แสดงวิธีที่คุณสามารถเตรียมสภาพแวดล้อมการทำงานสำหรับการทำงานกับแอปพลิเคชัน Java EE
- แสดงวิธีที่คุณสามารถปรับใช้และรันแอปพลิเคชัน Java EE จาก IntelliJ IDEA บนเซิร์ฟเวอร์ GlassFish
- ดาวน์โหลดและติดตั้ง Java EE 7 SDK
- มายกระดับ Java EE Application Server GlassFish กันดีกว่า
- มาเรียนรู้วิธีเริ่มและหยุดเซิร์ฟเวอร์ผ่านทางบรรทัดคำสั่ง
- มากำหนดค่า IntelliJ IDEA เพื่อปรับใช้แอปพลิเคชันกับเซิร์ฟเวอร์นี้
- มาปรับใช้และรันแอปพลิเคชันสาธิต ซึ่งเมื่อรวมกับเซิร์ฟเวอร์แอปพลิเคชัน GlassFish แล้ว จะรวมอยู่ใน Java EE 7 SDK
- กลาสฟิช 4.0;
- IntelliJ IDEA 2019.3.1 (ขั้นสูงสุด);
- จาวา 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
ตัวอย่างเช่นเช่นนี้:
-
ขั้นตอนการติดตั้งเพิ่มเติมเป็นเรื่องปกติสำหรับโปรแกรมส่วนใหญ่ สิ่งที่คุณต้องทำคือคลิกที่ปุ่มถัดไปและติดตั้ง
โปรแกรมจะติดตั้ง Java EE SDK เช่นเดียวกับเซิร์ฟเวอร์ GlassFish ซึ่งเมื่อการติดตั้งเสร็จสิ้นจะพร้อมใช้งานและพร้อมใช้งาน -
เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ GlassFish ใช้งานได้ หลังจากการติดตั้งเสร็จสมบูรณ์ คุณสามารถเปิดแผงผู้ดูแลระบบเซิร์ฟเวอร์ได้ซึ่งจะอยู่ที่: http://localhost:4848/
ภาพหน้าจอด้านล่าง:
GlassFish เริ่มต้นและหยุดผ่านบรรทัดคำสั่ง
ดังนั้น เซิร์ฟเวอร์เปิดใช้งานและทำงานอยู่ แต่การเริ่มเซิร์ฟเวอร์เริ่มต้นโดยโปรแกรมการติดตั้ง ด้านล่างนี้เราจะพยายามหาวิธีเริ่มและหยุดเซิร์ฟเวอร์ด้วยตัวเอง ขั้นแรก เรามาเปิดเผยเอนทิตีดังกล่าวเป็นโดเมนกันก่อน โดเมนคือชุดของอินสแตนซ์เซิร์ฟเวอร์ GlassFish หนึ่งรายการขึ้นไปที่จัดการโดยเซิร์ฟเวอร์การดูแลระบบหนึ่งเครื่อง เมื่อติดตั้งเซิร์ฟเวอร์ GlassFish โดเมนเริ่มต้นจะถูกสร้างขึ้น - โดเมน 1 ส่วนประกอบต่อไปนี้มีความเกี่ยวข้อง:- พอร์ตเซิร์ฟเวอร์ (ค่าเริ่มต้น 8080);
- พอร์ตเซิร์ฟเวอร์การดูแลระบบ (ค่าเริ่มต้น 4848);
- ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ (ค่าเริ่มต้นคือผู้ดูแลระบบและไม่ต้องใช้รหัสผ่านตามค่าเริ่มต้น)

asadmin start-domain domain_name
asadmin stop-domain domain_name
ลองหยุดเซิร์ฟเวอร์ (เนื่องจากเซิร์ฟเวอร์ทำงานอยู่แล้วหลังการติดตั้ง) โดยการเรียกใช้ PowerShell จากไดเรกทอรีย่อยC:\glassfish4\glassfish\bin : 

เราวิเคราะห์แอปพลิเคชัน Java EE แรก dukes-age
ต่อไปเราจะดูตัวอย่างแอปพลิเคชัน Java EE: dukes-age แอปพลิเคชันนี้รวมอยู่ใน Java EE SDK พร้อมกับแอปพลิเคชันถ้วยแรก คำอธิบายของแอปพลิเคชันเหล่านี้แสดงอยู่ในเว็บไซต์เอกสารประกอบอย่างเป็นทางการของ Oracle ในส่วนที่ 3 และ 4 ของหลักสูตรเบื้องต้นเกี่ยวกับ Java EE สำหรับนักพัฒนา Java EE ระดับเริ่มต้น ในบทความนี้ เราจะดูแอปพลิเคชัน dukes-age โดยย่อ และตรวจสอบรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการเปิดแอปพลิเคชันนี้บนเซิร์ฟเวอร์ GlassFish จากสภาพแวดล้อมการพัฒนา IntelliJ IDEA แอปพลิเคชันนี้อยู่ภายในไดเร็กทอรีเซิร์ฟเวอร์ glassfish หากคุณไม่ได้เปลี่ยนเส้นทางเริ่มต้นสำหรับเซิร์ฟเวอร์ glassfish เมื่อติดตั้ง Java EE SDK คุณจะพบแอปพลิเคชันนี้ในโฟลเดอร์: C :\glassfish4\docs\firstcup\example\dukes-age อาจเป็นไปได้ว่านักพัฒนา Java ทุกคน ทั้งผู้เริ่มต้นและผู้มีประสบการณ์ เคยเห็นมาสคอตของภาษาการเขียนโปรแกรม Java อย่างน้อยหนึ่งครั้ง - Duke: มี


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()
. หากคุณตรวจสอบโค้ดของวิธีนี้ จะเห็นได้ชัดว่าวิธีนี้ส่งคืนจำนวนปีที่ผ่านไปนับตั้งแต่วันเกิดของ Duke นั่นคือวิธีการคืนค่าอายุของ Duke คลาสเป็นทรัพยากรในบริบท 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>
ในไฟล์นี้ ภายในแท็กจะ มีการกำหนด servlet-mapping
แท็กurl-pattern
ที่มีค่า /webapi/*
ที่นี่มีการกำหนดจุดรูทที่แน่นอน การเรียกที่บริการจะประมวลผลเพิ่มเติม หากรวมกับคำอธิบายประกอบ@Path("dukesAge")
ปรากฎว่าหากต้องการทราบข้อมูลเกี่ยวกับอายุของ Duke คุณต้องติดต่อที่อยู่ /webapi/dukesAge
การตั้งค่า IntelliJ IDEA เพื่อรันแอปพลิเคชัน Java EE บนเซิร์ฟเวอร์ GlassFish
ตอนนี้เรามีแนวคิดทั่วไปเกี่ยวกับแอปพลิเคชัน dukes-age แล้ว (อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ในไซต์ Oracle ) มากำหนดค่า IntelliJ IDEA เพื่อให้เราสามารถเรียกใช้แอปพลิเคชันนี้จาก IDE ของเรา การตั้งค่า IntelliJ IDEA- โดยไปที่เมนู Run -> แก้ไขการกำหนดค่า
- แผงการกำหนดค่า Run/Debug จะเปิดขึ้น:
- เราจำเป็นต้องเพิ่มการกำหนดค่าใหม่ โดยคลิกที่เครื่องหมายบวก หรือใช้ปุ่มลัด Alt+Insert ในรายการที่เปิดขึ้น ให้เลือกเซิร์ฟเวอร์ GlassFish -> Local:
- ในหน้าต่างที่เปิดขึ้น มาเริ่มตั้งค่ากัน:
- ขั้นตอนต่อไปคือการระบุสิ่งประดิษฐ์ที่จะต้องนำไปใช้กับเซิร์ฟเวอร์ ซึ่งสามารถทำได้ผ่านแท็บการปรับใช้โดยคลิกที่เครื่องหมายบวก -> สิ่งประดิษฐ์...
- เลือก dukes-age:war และคลิก ตกลง:
- จากนั้น บันทึกการกำหนดค่าของเราโดยคลิกที่ Apply จากนั้นคลิก OK
การเปิดตัวแอปพลิเคชัน
ตอนนี้เรามาลองเรียกใช้แอปพลิเคชันกัน-
ในการดำเนินการนี้ คุณสามารถใช้ปุ่มลัด Alt+Shift+F10 หรือผ่านเมนู Run -> Run...
และเลือกการกำหนดค่ายุคดยุคที่เราสร้างขึ้น:
-
หลังจากนี้เราจะเห็นบันทึกการเริ่มต้นในแผงบริการ:
-
จากนั้นหากทำทุกอย่างตามคำแนะนำเบราว์เซอร์จะเปิดขึ้นและจะเห็นได้ชัดว่าไม่มีอะไรทำงาน:

-
เมื่อต้องการทำสิ่งนี้ ให้กลับไปที่ IntelliJ IDEA จากนั้นไปที่เมนู: Run -> Edit Configurations...
-
เลือกการกำหนดค่าที่บันทึกไว้ก่อนหน้านี้และอัปเดต URL ตามภาพหน้าจอด้านล่าง:
-
มาบันทึกการกำหนดค่าและรีสตาร์ทแอปพลิเคชันของเราโดยใช้ปุ่มลัด Ctrl+Shift+F10 หรือใช้ปุ่มพิเศษบนแผงบริการ:
-
หลังจากการรีสตาร์ท หากทุกอย่างถูกต้อง เราจะเห็นอายุของ Duke:
บทสรุป
ในบทความนี้ เราได้ดูวิธีที่คุณสามารถกำหนดค่าสภาพแวดล้อมภายในเครื่องของคุณให้ทำงานกับแอปพลิเคชัน Java EE โดยใช้ตัวอย่างของเซิร์ฟเวอร์ GlassFish 4.0, สภาพแวดล้อมการพัฒนา IntelliJ IDEA 2019.3.1 (ขั้นสูงสุด) และ Java EE SDK เวอร์ชัน 7 เราดู ด้วยวิธีที่คุณสามารถ:- ดาวน์โหลดและติดตั้ง Java EE SDK รวมถึงเซิร์ฟเวอร์ GlassFish
- หยุดและเริ่มเซิร์ฟเวอร์ GlassFish ผ่าน PowerShell
- กำหนดค่า IntelliJ IDEA เพื่อให้คุณสามารถปรับใช้แอปพลิเคชัน Java EE จาก IDE ไปยังเซิร์ฟเวอร์ GlassFish และเปิดใช้งานได้ทันที
งานโบนัส
- ทำซ้ำขั้นตอนที่อธิบายไว้ทั้งหมดด้วยตนเอง
- เข้าร่วมหลักสูตรเบื้องต้นเกี่ยวกับ Java EE สำหรับนักพัฒนา Java EE ระดับเริ่มต้นจาก Oracle
- รายการที่มีเครื่องหมายดอกจัน ลองปรับใช้แอปพลิเคชันสาธิตถ้วยแรกตัวที่สองด้วยตัวเอง แอปพลิเคชันนี้มีการโต้ตอบมากขึ้นและโต้ตอบกับแอปพลิเคชัน Dukes-age อีกด้วย เพื่อทำตามขั้นตอนนี้ คุณจะต้องเข้าใจคำถามต่อไปนี้อย่างอิสระ:
- วิธีเปิดใช้งานฐานข้อมูลภายในเซิร์ฟเวอร์ glassFish
- วิธีรวมสองแอปพลิเคชันเข้าด้วยกัน (ภายในถ้วยแรกระบุเส้นทางไปยังจุดสิ้นสุดของยุคดยุค ซึ่งเราได้กล่าวถึงในบทความนี้)
- วิธีสร้างการกำหนดค่าใหม่ใน Intellij IDEA สำหรับการปรับใช้คัพแรก (คล้ายกับที่แสดงในบทความนี้)
- อาจมีอีกหลายคำถาม)
GO TO FULL VERSION