JavaRush /وبلاگ جاوا /Random-FA /راه اندازی یک محیط محلی برای توسعه 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 روی سرور GlassFish استقرار و اجرا کنید.
در اینجا کاری است که ما برای این کار انجام خواهیم داد:
  1. Java EE 7 SDK را دانلود و نصب کنید.
  2. بیایید Java EE Application Server GlassFish را بالا ببریم.
  3. بیایید یاد بگیریم که چگونه سرور را از طریق خط فرمان راه اندازی و متوقف کنیم.
  4. بیایید IntelliJ IDEA را برای استقرار برنامه‌ها در این سرور پیکربندی کنیم.
  5. بیایید برنامه آزمایشی را که همراه با سرور برنامه GlassFish در Java EE 7 SDK گنجانده شده است، اجرا و اجرا کنیم.
این مقاله برای توسعه دهندگان تازه کار جاوا که با توسعه Enterprise در جاوا آشنا می شوند مفید خواهد بود. این را کمی آماده سازی زمینه برای تمرین بیشتر در نظر بگیرید. اگر با مهارت های اولیه خط فرمان ویندوز (PowerShell) آشنا باشید، مطالب را درک خواهید کرد. نسخه های اجزای نرم افزار مورد استفاده در این مقاله:
  • GlassFish 4.0;
  • IntelliJ IDEA 2019.3.1 (Ultimate)؛
  • Java EE SDK 7.

نصب Java EE SDK

شرط مهم قبل از نصب Java EE SDK، باید مطمئن شوید که Java SE SDK از قبل نصب شده است.
  1. ابتدا باید SDK را دانلود کنیم. برای انجام این کار، می توانید در موتور جستجو تایپ کنید: "Java EE SDK 7" یا مستقیماً به صفحه دانلود sdk از وب سایت Oracle بروید.

  2. از لیست SDK های ارائه شده، باید SDK را انتخاب کنید که برای پلتفرم شما مناسب است. مقاله نصب توزیع را شرح می دهد: "java_ee_sdk-7-jdk7-windows-x64-ml.exe"

  3. فایل نصب را اجرا کنید. در هنگام راه اندازی، خطای زیر ممکن است رخ دهد (اگر رخ نداد، می توانید به سادگی نصب را ادامه دهید):

    راه اندازی یک محیط محلی برای توسعه Java EE - 2

    این به این معنی است که نصب کننده نتوانست مسیر جاوا را که از قبل نصب شده است را پیدا کند. با ارسال دستی مسیر JRE با استفاده از خط فرمان می توان خطا را تصحیح کرد. برای این کار باید فایل نصبی را از طریق PowerShell اجرا کنید و مسیر JRE از پیش نصب شده را از طریق پارامتر -j عبور دهید.

    به عنوان مثال، مانند این:

    راه اندازی یک محیط محلی برای توسعه Java EE - 3
  4. مراحل نصب بعدی برای اکثر برنامه ها کاملاً معمولی است. تنها کاری که باید انجام دهید این است که روی دکمه های Next و Install کلیک کنید.

    این برنامه 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، duks-age را تجزیه و تحلیل می کنیم

در ادامه به یک برنامه آزمایشی Java EE نگاه خواهیم کرد: dukes-age. این اپلیکیشن در Java EE SDK به همراه اپلیکیشن first-cup گنجانده شده است. توضیحات این برنامه ها در وب سایت رسمی اسناد Oracle در بخش های 3 و 4 دوره مقدماتی Java EE برای توسعه دهندگان مبتدی Java EE ارائه شده است . در این مقاله به طور مختصر به اپلیکیشن dukes-age نگاهی می اندازیم و روند راه اندازی این اپلیکیشن روی سرور GlassFish از محیط توسعه IntelliJ IDEA را با جزئیات بیشتری بررسی می کنیم. برنامه در داخل فهرست سرور glassfish قرار دارد. اگر هنگام نصب Java EE SDK مسیر پیش‌فرض سرور glassfish را تغییر نداده‌اید، می‌توانید این برنامه را در پوشه: C:\glassfish4\docs\firstcup\example\dukes-age پیدا کنید . احتمالاً هر توسعه دهنده جاوا، مبتدی و با تجربه، حداقل یک بار طلسم زبان برنامه نویسی جاوا را دیده است - دوک: راه اندازی یک محیط محلی برای توسعه Java EE - 8تعداد کمی از مردم می دانند که دوک تولد دارد. او در 23 می 1995 به دنیا آمد، زمانی که اولین نسخه آزمایشی فناوری جاوا منتشر شد. اپلیکیشن Dukes-age همانطور که از نامش پیداست اطلاعاتی درباره سن دوک ارائه می دهد. بیایید این برنامه را در 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(). اگر کد این روش را بررسی کنید، مشخص می شود که این روش تعداد سال های گذشته از تولد دوک را برمی گرداند. یعنی این روش سن دوک را برمی گرداند. کلاس منبعی در زمینه 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. برای این کار به منوی Run -> Edit Configurations بروید.
  2. پانل Run/Debug Configurations باز می شود: راه اندازی یک محیط محلی برای توسعه Java EE - 11
  3. باید یک پیکربندی جدید اضافه کنیم. برای این کار روی علامت مثبت کلیک کنید یا از کلید میانبر Alt+Insert استفاده کنید. در لیستی که باز می شود، GlassFish Server -> Local را انتخاب کنید: راه اندازی یک محیط محلی برای توسعه Java EE - 12
  4. در پنجره ای که باز می شود، اجازه دهید تنظیمات پیکربندی را شروع کنیم: راه اندازی یک محیط محلی برای توسعه Java EE - 13
  5. مرحله بعدی نشان دادن مصنوعاتی است که باید در سرور مستقر شوند. این کار را می توان از طریق تب Deployment با کلیک بر روی +> Artifact... انجام داد. راه اندازی یک محیط محلی برای توسعه Java EE - 14
  6. dukes-age:war را انتخاب کرده و روی OK کلیک کنید: راه اندازی یک محیط محلی برای توسعه Java EE - 15
  7. در مرحله بعد، پیکربندی خود را با کلیک بر روی Apply و سپس OK ذخیره کنید.
پیکربندی ایجاد شده است!

راه اندازی برنامه

حالا بیایید سعی کنیم برنامه را اجرا کنیم.
  1. برای این کار می توانید از کلید میانبر Alt+Shift+F10 یا از طریق منوی Run -> Run... استفاده کنید.

    و پیکربندی duks-age که ایجاد کردیم را انتخاب کنید:

    راه اندازی یک محیط محلی برای توسعه Java EE - 16

  2. پس از این، ما گزارش های راه اندازی را در پانل Services می بینیم:

    راه اندازی یک محیط محلی برای توسعه Java EE - 17
  3. سپس، اگر همه چیز طبق دستورالعمل انجام شود، مرورگر باز می شود و مشخص می شود که هیچ چیز کار نمی کند:

    راه اندازی یک محیط محلی برای توسعه Java EE - 18
دنیای IT چنین است. حتی اگر همه چیز به درستی انجام شود، ممکن است چیزی کار نکند. اما نگران نباشید: می‌توانید فوراً نحوه انجام صحیح آن را توضیح دهید، اما برخی از تفاوت‌های ظریف کمتر آشکار خواهند بود. به عنوان مثال، آدرس اینترنتی که IDEA هنگام راه اندازی برنامه ما را به آن هدایت می کند چگونه تولید می شود؟ به آن توجه کنیم. ما به http://localhost:8080/dukes-age-7.0.1/ هدایت شدیم . برای اینکه بفهمیم این از کجا آمده است (/dukes-age-7.0.1/)، اجازه دهید به پنل مدیریت سرور GlassFish برویم. در منوی سمت چپ روی Applications کلیک کنید. در مرحله بعد، برنامه های مستقر شده، از جمله 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 یا با استفاده از یک دکمه خاص در پانل Services راه اندازی مجدد کنیم:

    راه اندازی یک محیط محلی برای توسعه Java EE - 21
  4. پس از راه اندازی مجدد، اگر همه چیز به درستی انجام شود، سن دوک را خواهیم دید:

    Настройка локального окружения для Java EE разработки - 22
عالی. بالاخره فهمیدیم که دوک 24 ساله است. اگر طی چند ماه آینده، از آوریل 2020، تمام مراحل ذکر شده در بالا را تکرار نکنید، احتمالا دوک کمی پیر خواهد شد.

نتیجه

در این مقاله، نحوه پیکربندی محیط محلی خود را برای کار با برنامه های Java EE با استفاده از مثال سرور GlassFish 4.0، محیط توسعه IntelliJ IDEA 2019.3.1 (Ultimate) و Java EE SDK نسخه 7 بررسی کردیم. چگونه می توانید:
  • Java EE SDK و همچنین سرور GlassFish را دانلود و نصب کنید.
  • توقف و راه اندازی سرور GlassFish از طریق PowerShell.
  • IntelliJ IDEA را پیکربندی کنید تا بتوانید برنامه های Java EE را از IDE به سرور GlassFish مستقر کرده و بلافاصله آنها را راه اندازی کنید.

وظیفه پاداش

  1. تمام مراحل توضیح داده شده را خودتان تکرار کنید.
  2. یک دوره مقدماتی در مورد Java EE برای توسعه دهندگان مبتدی Java EE از Oracle بگیرید .
  3. مورد با ستاره. سعی کنید دومین برنامه آزمایشی جام اول را خودتان اجرا کنید. این برنامه تعاملی تر است و همچنین با برنامه duks-age تعامل دارد. برای تکمیل این مرحله، باید به طور مستقل سؤالات زیر را درک کنید:
    1. نحوه فعال کردن پایگاه داده در سرور glassFish.
    2. نحوه ادغام دو برنامه با یکدیگر (در داخل اولین جام نشان دهنده مسیر رسیدن به نقطه پایانی دوک است که در این مقاله به آن پرداختیم).
    3. نحوه ایجاد یک پیکربندی جدید در Intellij IDEA برای استقرار اولین جام (مشابه آنچه در این مقاله نشان داده شد).
    4. احتمالاً بسیاری از سؤالات دیگر)
PS مانع ورود زیاد است، اما آیا این انگیزه شما نیست؟
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION