JavaRush /مدونة جافا /Random-AR /إعداد بيئة محلية لتطوير 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 GlassFish.
  3. دعونا نتعلم كيفية تشغيل الخادم وإيقافه عبر سطر الأوامر.
  4. لنقم بتكوين IntelliJ IDEA لنشر التطبيقات على هذا الخادم.
  5. لنقم بنشر التطبيق التجريبي وتشغيله، والذي تم تضمينه في Java EE 7 SDK مع خادم تطبيق GlassFish.
ستكون هذه المقالة مفيدة لمطوري Java المبتدئين الذين يتعرفون على تطوير المؤسسات في Java. اعتبر هذا تمهيدًا بسيطًا لمزيد من الممارسة. سوف تفهم المادة إذا كنت معتادًا على مهارات سطر أوامر Windows الأساسية (PowerShell). إصدارات مكونات البرنامج المستخدمة في هذه المقالة:
  • جلاس فيش 4.0;
  • IntelliJ IDEA 2019.3.1 (النهائي)؛
  • جافا إي إس دي كيه 7.

تثبيت جافا EE SDK

شرط مهم. قبل تثبيت Java EE SDK، يجب عليك التأكد من تثبيت Java SE SDK مسبقًا.
  1. أولاً، نحتاج إلى تنزيل SDK. للقيام بذلك، يمكنك كتابة محرك بحث: "Java EE SDK 7"، أو الانتقال مباشرة إلى صفحة تنزيل sdk من موقع Oracle الإلكتروني.

  2. من قائمة أدوات تطوير البرامج (SDKs) المتوفرة، تحتاج إلى تحديد الحزمة المناسبة لنظامك الأساسي. توضح المقالة تثبيت التوزيع: "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، يتم إنشاء مجال افتراضي - domain1. ترتبط المكونات التالية به:
  • منفذ الخادم (الافتراضي 8080)؛
  • منفذ خادم الإدارة (الافتراضي 4848)؛
  • اسم المستخدم وكلمة المرور للمسؤول (الافتراضي هو admin ولا توجد كلمة مرور مطلوبة افتراضيًا).
يحتوي 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 مايو 1995، عندما تم نشر النسخة التجريبية الأولى من تقنية Java. يوفر تطبيق Dukes-age، كما يوحي الاسم، معلومات حول عمر Duke. لنفتح هذا التطبيق في IntelliJ IDEA: ملف -> جديد -> مشروع من مصادر موجودة... ثم انتقل إلى المجلد الذي يحتوي على تطبيق 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(). إذا قمت بفحص كود هذه الطريقة، يصبح من الواضح أن الطريقة ترجع عدد السنوات التي مرت منذ ولادة ديوك. أي أن الطريقة ترجع عمر ديوك. الفصل هو مورد في سياق 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")، فسيتبين أنه للحصول على معلومات حول عمر ديوك، يجب عليك الاتصال بالعنوان /webapi/dukesAge.

إعداد IntelliJ IDEA لتشغيل تطبيق Java EE على خادم GlassFish

الآن بعد أن أصبح لدينا فكرة عامة جدًا عن تطبيق Dukes-age (اقرأ المزيد عنه على موقع Oracle )، فلنقم بتكوين IntelliJ IDEA حتى نتمكن من تشغيل هذا التطبيق من IDE الخاص بنا. إعداد IntelliJ IDEA
  1. للقيام بذلك، انتقل إلى القائمة تشغيل -> تحرير التكوينات.
  2. سيتم فتح لوحة تكوينات التشغيل/التصحيح: إعداد بيئة محلية لتطوير Java EE - 11
  3. نحن بحاجة إلى إضافة تكوين جديد. للقيام بذلك، انقر فوق علامة الزائد، أو استخدم مفتاح التشغيل السريع Alt+Insert. في القائمة التي تفتح، حدد خادم GlassFish -> محلي: إعداد بيئة محلية لتطوير Java EE - 12
  4. في النافذة التي تفتح، لنبدأ في إعداد التكوين: إعداد بيئة محلية لتطوير Java EE - 13
  5. الخطوة التالية هي الإشارة إلى العناصر التي يجب نشرها على الخادم. يمكن القيام بذلك من خلال علامة التبويب "النشر" بالنقر فوق علامة الجمع -> قطعة أثرية... إعداد بيئة محلية لتطوير Java EE - 14
  6. حدد Dukes-age:war وانقر فوق "موافق": إعداد بيئة محلية لتطوير Java EE - 15
  7. بعد ذلك، احفظ التكوين الخاص بنا من خلال النقر على "تطبيق" ثم "موافق".
تم إنشاء التكوين!

إطلاق التطبيق

الآن دعونا نحاول تشغيل التطبيق.
  1. للقيام بذلك، يمكنك استخدام مفتاح التشغيل السريع Alt+Shift+F10، أو من خلال القائمة تشغيل -> تشغيل...

    وحدد تكوين Dukes-age الذي أنشأناه:

    إعداد بيئة محلية لتطوير 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، يمكنك رؤية بعض خصائصه، بما في ذلك عنصر سياق الجذر: إعداد بيئة محلية لتطوير Java EE - 19dukes-age-7.0.1 هو اسم التطبيق وإصداره. نقطة الجذر. يجب أن تبدأ جميع الطلبات التي سيعالجها dukes-age بالبادئة /dukes-age-7.0.1/. لذلك لدينا نقطة الجذر: /dukes-age-7.0.1. كما ناقشنا سابقًا أن تطبيقنا سيتعامل مع الطلبات المقدمة إلى /webapi/dukesAge. دعونا نجمع بين هذين الأمرين ونقوم بتحديث التكوين الخاص بنا.
  1. للقيام بذلك، دعنا نعود إلى IntelliJ IDEA، ثم إلى القائمة: تشغيل -> تحرير التكوينات...

  2. دعنا نحدد التكوين المحفوظ مسبقًا ونقوم بتحديث عنوان URL وفقًا للقطة الشاشة أدناه:

    إعداد بيئة محلية لتطوير Java EE - 20
  3. فلنحفظ التكوين ونعيد تشغيل تطبيقنا باستخدام مفتاح التشغيل السريع Ctrl+Shift+F10، أو باستخدام زر خاص في لوحة الخدمات:

    إعداد بيئة محلية لتطوير Java EE - 21
  4. بعد إعادة التشغيل، إذا تم كل شيء بشكل صحيح، فسنرى عمر ديوك:

    Настройка локального окружения для Java EE разработки - 22
عظيم. اكتشفنا أخيرًا أن ديوك يبلغ من العمر 24 عامًا. إذا لم تكرر جميع الخطوات الموضحة أعلاه خلال الشهرين المقبلين، بدءًا من أبريل 2020، فمن المحتمل أن يتقدم عمر ديوك قليلاً.

خاتمة

في هذه المقالة، نظرنا في كيفية تكوين بيئتك المحلية للعمل مع تطبيقات Java EE باستخدام مثال خادم GlassFish 4.0 وبيئة تطوير IntelliJ IDEA 2019.3.1 (Ultimate) والإصدار 7 من Java EE SDK. في كيف يمكنك:
  • تنزيل وتثبيت 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