JavaRush /จาวาบล็อก /Random-TH /การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE
zor07
ระดับ
Санкт-Петербург

การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE

เผยแพร่ในกลุ่ม
ในบทความนี้ เราจะตั้งค่าสภาพแวดล้อมการทำงานสำหรับการรันแอปพลิเคชัน Java EE ฉันขอเตือนคุณ : ในเนื้อหาก่อนหน้านี้เราได้กล่าวถึงพื้นฐานของJava EE การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 1ตามสภาพแวดล้อม เราหมายถึงชุดของส่วนประกอบซอฟต์แวร์ต่างๆ:
  • ชวา EE SDK;
  • แอปพลิเคชันเซิร์ฟเวอร์ Java EE GlassFish;
  • การตั้งค่า IntelliJ IDEA
เป้าหมายหลักของเนื้อหานี้:
  1. แสดงวิธีที่คุณสามารถเตรียมสภาพแวดล้อมการทำงานสำหรับการทำงานกับแอปพลิเคชัน Java EE
  2. แสดงวิธีที่คุณสามารถปรับใช้และรันแอปพลิเคชัน Java EE จาก IntelliJ IDEA บนเซิร์ฟเวอร์ GlassFish
นี่คือสิ่งที่เราจะทำเพื่อสิ่งนี้:
  1. ดาวน์โหลดและติดตั้ง Java EE 7 SDK
  2. มายกระดับ Java EE Application Server GlassFish กันดีกว่า
  3. มาเรียนรู้วิธีเริ่มและหยุดเซิร์ฟเวอร์ผ่านทางบรรทัดคำสั่ง
  4. มากำหนดค่า IntelliJ IDEA เพื่อปรับใช้แอปพลิเคชันกับเซิร์ฟเวอร์นี้
  5. มาปรับใช้และรันแอปพลิเคชันสาธิต ซึ่งเมื่อรวมกับเซิร์ฟเวอร์แอปพลิเคชัน GlassFish แล้ว จะรวมอยู่ใน Java EE 7 SDK
บทความนี้จะเป็นประโยชน์สำหรับนักพัฒนา Java มือใหม่ที่กำลังทำความคุ้นเคยกับการพัฒนา Enterprise ใน Java พิจารณานี่เป็นการเตรียมพื้นที่เล็กน้อยสำหรับการฝึกต่อไป คุณจะเข้าใจเนื้อหานี้หากคุณคุ้นเคยกับทักษะบรรทัดคำสั่ง Windows (PowerShell) ขั้นพื้นฐาน เวอร์ชันของส่วนประกอบซอฟต์แวร์ที่ใช้ในบทความนี้:
  • กลาสฟิช 4.0;
  • IntelliJ IDEA 2019.3.1 (ขั้นสูงสุด);
  • จาวา 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. ขั้นตอนการติดตั้งเพิ่มเติมเป็นเรื่องปกติสำหรับโปรแกรมส่วนใหญ่ สิ่งที่คุณต้องทำคือคลิกที่ปุ่มถัดไปและติดตั้ง

    โปรแกรมจะติดตั้ง Java EE SDK เช่นเดียวกับเซิร์ฟเวอร์ GlassFish ซึ่งเมื่อการติดตั้งเสร็จสิ้นจะพร้อมใช้งานและพร้อมใช้งาน

  5. เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ GlassFish ใช้งานได้ หลังจากการติดตั้งเสร็จสมบูรณ์ คุณสามารถเปิดแผงผู้ดูแลระบบเซิร์ฟเวอร์ได้ซึ่งจะอยู่ที่: http://localhost:4848/

    ภาพหน้าจอด้านล่าง:

    การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 4

GlassFish เริ่มต้นและหยุดผ่านบรรทัดคำสั่ง

ดังนั้น เซิร์ฟเวอร์เปิดใช้งานและทำงานอยู่ แต่การเริ่มเซิร์ฟเวอร์เริ่มต้นโดยโปรแกรมการติดตั้ง ด้านล่างนี้เราจะพยายามหาวิธีเริ่มและหยุดเซิร์ฟเวอร์ด้วยตัวเอง ขั้นแรก เรามาเปิดเผยเอนทิตีดังกล่าวเป็นโดเมนกันก่อน โดเมนคือชุดของอินสแตนซ์เซิร์ฟเวอร์ GlassFish หนึ่งรายการขึ้นไปที่จัดการโดยเซิร์ฟเวอร์การดูแลระบบหนึ่งเครื่อง เมื่อติดตั้งเซิร์ฟเวอร์ GlassFish โดเมนเริ่มต้นจะถูกสร้างขึ้น - โดเมน 1 ส่วนประกอบต่อไปนี้มีความเกี่ยวข้อง:
  • พอร์ตเซิร์ฟเวอร์ (ค่าเริ่มต้น 8080);
  • พอร์ตเซิร์ฟเวอร์การดูแลระบบ (ค่าเริ่มต้น 4848);
  • ชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบ (ค่าเริ่มต้นคือผู้ดูแลระบบและไม่ต้องใช้รหัสผ่านตามค่าเริ่มต้น)
Domain1 มีการกำหนดค่าเริ่มต้นไว้ การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 5ในการเริ่มต้นและหยุดเซิร์ฟเวอร์ การกระจาย GlassFish จะรวมสคริปต์หลายตัว ซึ่งโดยค่าเริ่มต้นจะอยู่ในไดเร็กทอรีต่อไปนี้: C:\glassfish4\glassfish\bin หากต้องการเริ่มและหยุดเซิร์ฟเวอร์ GlassFish ผ่านทางบรรทัดคำสั่ง คุณสามารถใช้สคริปต์ asadmin และคำสั่งของมัน:
asadmin start-domain domain_name
asadmin stop-domain domain_name
ลองหยุดเซิร์ฟเวอร์ (เนื่องจากเซิร์ฟเวอร์ทำงานอยู่แล้วหลังการติดตั้ง) โดยการเรียกใช้ 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 ระดับเริ่มต้น ในบทความนี้ เราจะดูแอปพลิเคชัน dukes-age โดยย่อ และตรวจสอบรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการเปิดแอปพลิเคชันนี้บนเซิร์ฟเวอร์ GlassFish จากสภาพแวดล้อมการพัฒนา IntelliJ IDEA แอปพลิเคชันนี้อยู่ภายในไดเร็กทอรีเซิร์ฟเวอร์ glassfish หากคุณไม่ได้เปลี่ยนเส้นทางเริ่มต้นสำหรับเซิร์ฟเวอร์ glassfish เมื่อติดตั้ง Java EE SDK คุณจะพบแอปพลิเคชันนี้ในโฟลเดอร์: C :\glassfish4\docs\firstcup\example\dukes-age อาจเป็นไปได้ว่านักพัฒนา Java ทุกคน ทั้งผู้เริ่มต้นและผู้มีประสบการณ์ เคยเห็นมาสคอตของภาษาการเขียนโปรแกรม Java อย่างน้อยหนึ่งครั้ง - Duke: มี การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 8เพียงไม่กี่คนที่รู้ว่า Duke มีวันเกิด เขาเกิดเมื่อวันที่ 23 พฤษภาคม พ.ศ. 2538 เมื่อมีการเผยแพร่เทคโนโลยี Java เวอร์ชันสาธิตครั้งแรก ตามชื่อแอป dukes-age ให้ข้อมูลเกี่ยวกับอายุของ Duke มาเปิดแอปพลิเคชันนี้ใน IntelliJ IDEA: File -> New -> Project From Existing Sources... จากนั้นไปที่โฟลเดอร์ที่มีแอปพลิเคชัน dukes-age ซึ่งตามค่าเริ่มต้นอยู่ที่C:\glassfish4\docs\firstcup\example\dukes- ageเลือกไฟล์ pom.xml แล้วคลิก OK: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 9แอปพลิเคชันที่มีโครงสร้างดังต่อไปนี้จะเปิดขึ้น: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 10มาดูรหัสชั้นเรียนกัน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
  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>
ในไฟล์นี้ ภายในแท็กจะ มีการกำหนด servlet-mappingแท็กurl-patternที่มีค่า /webapi/*ที่นี่มีการกำหนดจุดรูทที่แน่นอน การเรียกที่บริการจะประมวลผลเพิ่มเติม หากรวมกับคำอธิบายประกอบ@Path("dukesAge")ปรากฎว่าหากต้องการทราบข้อมูลเกี่ยวกับอายุของ Duke คุณต้องติดต่อที่อยู่ /webapi/dukesAge

การตั้งค่า IntelliJ IDEA เพื่อรันแอปพลิเคชัน Java EE บนเซิร์ฟเวอร์ GlassFish

ตอนนี้เรามีแนวคิดทั่วไปเกี่ยวกับแอปพลิเคชัน dukes-age แล้ว (อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ในไซต์ Oracle ) มากำหนดค่า IntelliJ IDEA เพื่อให้เราสามารถเรียกใช้แอปพลิเคชันนี้จาก IDE ของเรา การตั้งค่า IntelliJ IDEA
  1. โดยไปที่เมนู Run -> แก้ไขการกำหนดค่า
  2. แผงการกำหนดค่า Run/Debug จะเปิดขึ้น: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 11
  3. เราจำเป็นต้องเพิ่มการกำหนดค่าใหม่ โดยคลิกที่เครื่องหมายบวก หรือใช้ปุ่มลัด Alt+Insert ในรายการที่เปิดขึ้น ให้เลือกเซิร์ฟเวอร์ GlassFish -> Local: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 12
  4. ในหน้าต่างที่เปิดขึ้น มาเริ่มตั้งค่ากัน: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 13
  5. ขั้นตอนต่อไปคือการระบุสิ่งประดิษฐ์ที่จะต้องนำไปใช้กับเซิร์ฟเวอร์ ซึ่งสามารถทำได้ผ่านแท็บการปรับใช้โดยคลิกที่เครื่องหมายบวก -> สิ่งประดิษฐ์... การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 14
  6. เลือก dukes-age:war และคลิก ตกลง: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 15
  7. จากนั้น บันทึกการกำหนดค่าของเราโดยคลิกที่ Apply จากนั้นคลิก OK
สร้างการกำหนดค่าแล้ว!

การเปิดตัวแอปพลิเคชัน

ตอนนี้เรามาลองเรียกใช้แอปพลิเคชันกัน
  1. ในการดำเนินการนี้ คุณสามารถใช้ปุ่มลัด Alt+Shift+F10 หรือผ่านเมนู Run -> Run...

    และเลือกการกำหนดค่ายุคดยุคที่เราสร้างขึ้น:

    การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 16

  2. หลังจากนี้เราจะเห็นบันทึกการเริ่มต้นในแผงบริการ:

    การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 17
  3. จากนั้นหากทำทุกอย่างตามคำแนะนำเบราว์เซอร์จะเปิดขึ้นและจะเห็นได้ชัดว่าไม่มีอะไรทำงาน:

    การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 18
นั่นคือโลกไอที แม้ว่าทุกอย่างถูกต้องแล้ว บางอย่างอาจไม่ทำงาน แต่อย่ากังวล: คุณสามารถอธิบายวิธีการทำสิ่งที่ถูกต้องได้ทันที แต่ความแตกต่างบางอย่างก็จะชัดเจนน้อยลง ตัวอย่างเช่น URL ที่ IDEA นำเราไปเมื่อสร้างแอปพลิเคชันสร้างขึ้นอย่างไร มาใส่ใจกับมันกันดีกว่า เราถูกเปลี่ยนเส้นทางไปที่http://localhost:8080/dukes-age-7.0.1 / เพื่อทำความเข้าใจว่าสิ่งนี้มาจากไหน (/dukes-age-7.0.1/) ไปที่แผงผู้ดูแลระบบของเซิร์ฟเวอร์ GlassFish ในเมนูด้านซ้ายคลิกที่รายการแอปพลิเคชัน ถัดไปคุณจะเห็นแอปพลิเคชันที่ปรับใช้ รวมถึง dukes-age เมื่อคุณเลือกแอปพลิเคชัน dukes-age คุณจะเห็นคุณสมบัติบางอย่าง รวมถึงรายการ Context-Root: การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 19dukes-age-7.0.1 คือชื่อและเวอร์ชันของแอปพลิเคชัน จุดราก คำขอทั้งหมดที่ 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 หรือใช้ปุ่มพิเศษบนแผงบริการ:

    การตั้งค่าสภาพแวดล้อมท้องถิ่นสำหรับการพัฒนา Java EE - 21
  4. หลังจากการรีสตาร์ท หากทุกอย่างถูกต้อง เราจะเห็นอายุของ Duke:

    Настройка локального окружения для Java EE разработки - 22
ยอดเยี่ยม. ในที่สุดเราก็พบว่าดุ๊กอายุ 24 ปี หากคุณไม่ทำซ้ำขั้นตอนทั้งหมดที่อธิบายไว้ข้างต้นภายในสองสามเดือนข้างหน้า เริ่มตั้งแต่เดือนเมษายน 2020 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 และเปิดใช้งานได้ทันที

งานโบนัส

  1. ทำซ้ำขั้นตอนที่อธิบายไว้ทั้งหมดด้วยตนเอง
  2. เข้าร่วมหลักสูตรเบื้องต้นเกี่ยวกับ Java EE สำหรับนักพัฒนา Java EE ระดับเริ่มต้นจาก Oracle
  3. รายการที่มีเครื่องหมายดอกจัน ลองปรับใช้แอปพลิเคชันสาธิตถ้วยแรกตัวที่สองด้วยตัวเอง แอปพลิเคชันนี้มีการโต้ตอบมากขึ้นและโต้ตอบกับแอปพลิเคชัน Dukes-age อีกด้วย เพื่อทำตามขั้นตอนนี้ คุณจะต้องเข้าใจคำถามต่อไปนี้อย่างอิสระ:
    1. วิธีเปิดใช้งานฐานข้อมูลภายในเซิร์ฟเวอร์ glassFish
    2. วิธีรวมสองแอปพลิเคชันเข้าด้วยกัน (ภายในถ้วยแรกระบุเส้นทางไปยังจุดสิ้นสุดของยุคดยุค ซึ่งเราได้กล่าวถึงในบทความนี้)
    3. วิธีสร้างการกำหนดค่าใหม่ใน Intellij IDEA สำหรับการปรับใช้คัพแรก (คล้ายกับที่แสดงในบทความนี้)
    4. อาจมีอีกหลายคำถาม)
ป.ล. อุปสรรคในการเข้ามีสูง แต่นั่นคือสิ่งที่เป็นแรงบันดาลใจให้คุณใช่ไหม
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION