Skip to content

1. مقدمه

1.1. Présentation

PDF برای این سند |ICI| است.

نمونه‌های این سند در |ICI| موجود هستند.

در این بخش، هدف ما معرفی با استفاده از مثال‌ها است

  • چارچوب Java Server Faces 2 (JSF2
  • کتابخانهٔ کامپوننت PrimeFaces برای JSF2، برای برنامه‌های دسکتاپ و موبایل.

این سند عمدتاً برای دانشجویان و توسعه‌دهندگانی است که به کتابخانه‌های کامپوننت PrimeFaces و [http://www.primefaces.org] علاقه‌مند هستند. این فریم‌ورک ده‌ها کامپوننت مبتنی بر AJAX ([http://www.primefaces.org/showcase/ui/home.jsf]) را ارائه می‌دهد که امکان ایجاد برنامه‌های وب با ظاهری مشابه برنامه‌های دسکتاپ را فراهم می‌کند. PrimeFaces بر پایه JSF2 ساخته شده است، از این رو ابتدا لازم است این فریم‌ورک را معرفی کنیم. PrimeFaces همچنین کامپوننت‌های خاصی برای دستگاه‌های موبایل ارائه می‌دهد. ما به این موارد نیز خواهیم پرداخت.

برای روشن شدن موضوع، ما یک اپلیکیشن رزرو وقت ملاقات را در محیط‌های مختلف خواهیم ساخت:

  1. یک برنامه وب سنتی با استفاده از فناوری‌های JSF2 / EJB3 / JPA روی سرور GlassFish 3.1،
  1. همان برنامه با قابلیت AJAX، با استفاده از فناوری PrimeFaces،
  2. و در نهایت، یک نسخه موبایل با استفاده از فناوری PrimeFaces Mobile.

هر بار که یک نسخه ساخته شد، آن را در یک محیط JSF2 / Spring / JPA بر روی سرور Tomcat 7 مستقر خواهیم کرد. بنابراین، ما شش برنامه جاوا EE خواهیم ساخت.

این سند تنها آنچه را که برای ساخت این برنامه‌ها ضروری است، تشریح می‌کند. بنابراین، نباید انتظار داشت که جامع باشد؛ چنین نیست. همچنین، این سند مجموعه‌ای از بهترین شیوه‌ها نیست. توسعه‌دهندگان باتجربه ممکن است دریابند که کارها را به شیوه‌ای متفاوت انجام می‌دادند. من صرفاً امیدوارم که این سند مجموعه‌ای از شیوه‌های بد نیز نباشد.

برای اطلاعات بیشتر در مورد JSF2 و PrimeFaces، می‌توان به مرجع زیر مراجعه کرد: s

  • [ref1]: آموزش جاوا EE5، راهنمای مرجع سان برای جاوا [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML]. برای آشنایی با فناوری وب، به‌ویژه JSF، بخش مربوط به II و [Web Tier] را مطالعه کنید. مثال‌های این آموزش قابل دانلود هستند. این مثال‌ها به صورت پروژه‌های NetBeans ارائه شده‌اند که می‌توان آن‌ها را بارگذاری و اجرا کرد،
  • [ref2]: *Core JavaServer Faces* اثر دیوید گِری و کی اس. هورستمن، ویرایش سوم، منتشر شده توسط مک‌گرا-هیل،
  • [ref3]: مستندات PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf
  • [ref4]: مستندات PrimeFaces موبایل: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].

ما گهگاه به [ref2] ارجاع می‌دهیم تا به خواننده نشان دهیم که می‌تواند با استفاده از این کتاب، یک حوزه خاص را با عمق بیشتری بررسی کند.

این سند به گونه‌ای نوشته شده است که برای گسترده‌ترین مخاطبان ممکن قابل دسترس باشد. پیش‌نیازهای درک آن به شرح زیر است:

  • دانش زبان جاوا،
  • دانش پایه توسعه جاوا (EE).

تمام منابع لازم برای برآورده کردن این پیش‌نیازها را می‌توان در وب‌سایت [http://developpez.com] یافت. برخی از این منابع را می‌توان در وب‌سایت [http://tahe.developpez.com] یافت:

1.2. مثال

مثال‌های این سند در URL و [ICI] به صورت پروژه‌های Maven برای هر دو NetBeans و Eclipse در دسترس هستند:

  

برای وارد کردن یک پروژه به NetBeans:

  • در [1]، یک پروژه را باز کنید،
  • در [2]، پروژه مورد نظر را برای باز کردن از سیستم فایل انتخاب کنید،
  • در [3]، آن باز می‌شود.

با اکلیپس،

  • در [1]، شما یک پروژه را وارد می‌کنید،
  • در [2]، پروژه یک پروژهٔ موجود Maven است،
  • در [3]: در سیستم فایل مشخص شده است،
  • در [4]: اکلیپس آن را به عنوان یک پروژه Maven تشخیص می‌دهد،
  • به‌عنوان [5]، پروژهٔ واردشده.

1.3. ابزارهای مورد استفاده

در ادامه، ما از (مه ۲۰۱۲) استفاده می‌کنیم:

  • NetBeans 7.1.2 (محیط توسعه یکپارچه)، موجود در URL [http://www.netbeans.org],
  • ایکلپس ایندیگو (IDE) در شکل سفارشی‌شده خود به عنوان مجموعه ابزار SpringSource (STS) ([http://www.springsource.com/developer/sts])،
  • PrimeFaces در نسخه ۳.۲، در URL [http://primefaces.org/
  • PrimeFaces موبایل، نسخه 0.9.2، در URL و [http://primefaces.org/] موجود است،
  • WampServer برای SGBD، MySQL و [http://www.wampserver.com/].

1.3.1. نصب NetBeans IDE

در اینجا نصب NetBeans 7.1.2 را شرح می‌دهیم که در URL و [http://netbeans.org/downloads/] در دسترس است.

 

شما می‌توانید از نسخهٔ جاوا EE که در بالا ذکر شد، همراه با دو سرور: GlassFish 3.1.2 و Apache Tomcat 7.0.22 استفاده کنید. اولی امکان توسعه برنامه‌های جاوا EE را با استفاده از EJB3 (Enterprise Java Beans) فراهم می‌کند، در حالی که دومی امکان توسعه برنامه‌های جاوا EE را بدون EJB فراهم می‌کند. سپس EJBها را با فریم‌ورک Spring جایگزین خواهیم کرد.

پس از دانلود نصب‌کننده NetBeans، آن را اجرا خواهیم کرد. برای این کار، به JDK (Java Development Kit) و [http://www.oracle.com/technetwork/java/javase/overview/index.HTML] نیاز خواهید داشت. علاوه بر NetBeans 7.1.2، موارد زیر را نصب خواهیم کرد:

  • چارچوب JUnit برای تست واحد،
  • سرور GlassFish 3.1.2،
  • سرور Tomcat 7.0.22.

پس از اتمام نصب، NetBeans را اجرا کنید:

  • در [1]، NetBeans 7.1.2 با سه زبانه:
  • زبانه‌ی [Projects] پروژه‌های باز NetBeans را نمایش می‌دهد؛
  • زبانه‌ی [Files] فایل‌های مختلفی را که پروژه‌های باز NetBeans را تشکیل می‌دهند، نمایش می‌دهد؛
  • زبانه‌ی [Services] تعدادی از ابزارهای مورد استفاده در پروژه‌های NetBeans را در کنار هم گروه‌بندی می‌کند؛
  • در [2]، زبانه [Services] فعال است، و در [3]، شاخه [Servers] فعال است،
  • در [4]، سرور Tomcat را راه‌اندازی می‌کنیم تا بررسی کنیم که به درستی نصب شده است،
  • در [6]، در زبانه [Apache Tomcat] [5]، می‌توانید بررسی کنید که سرور به درستی راه‌اندازی شده است،
  • در [7]، سرور Tomcat را متوقف کنید،

برای تأیید نصب صحیح سرور GlassFish 3.1.2 نیز همین رویه دنبال می‌شود:

  • در [8]، سرور GlassFish را راه‌اندازی کنید،
  • در [9]، بررسی می‌کنیم که به درستی راه‌اندازی شده است،
  • در [10]، آن را متوقف می‌کنیم.

اکنون یک IDE عملیاتی داریم. می‌توانیم ساخت پروژه‌ها را آغاز کنیم. بسته به آن‌ها، باید به تفصیل دربارهٔ ویژگی‌های مختلف IDE بپردازیم.

اکنون Eclipse را با شماره IDE نصب می‌کنیم و در آن دو سرور – Tomcat 7 و GlassFish 3.1.2 – را که همین‌الان دانلود کرده‌ایم، ثبت می‌کنیم. برای این کار باید مسیرهای نصب این دو سرور را بدانیم. این اطلاعات را می‌توان در ویژگی‌های این دو سرور یافت:

  • در [1]، پوشه نصب Tomcat
  • و [2]، پوشهٔ domains سرور GlassFish. در بخش مربوط به GlassFish در Eclipse، تنها کافی است اطلاعات زیر را وارد کنید: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].

1.3.2. نصب اکلیپس

اگرچه اکلیپس IDE مورد استفاده در این سند نیست، با این حال نصب آن را شرح خواهیم داد. این به آن دلیل است که مثال‌های موجود در سند نیز به صورت پروژه‌های Maven برای اکلیپس ارائه شده‌اند. اکلیپس با نصب از پیش‌تأمین‌شده Maven عرضه نمی‌شود. برای این کار باید یک افزونه نصب کنید. به جای نصب نسخه‌ای پایه‌ای از اکلیپس، ما مجموعه ابزار SpringSource [http://www.springsource.com/developer/sts] را نصب خواهیم کرد؛ نسخه‌ای از اکلیپس که به طور پیش‌فرض با پلاگین‌های متعددی مرتبط با فریم‌ورک Spring و همچنین پیکربندی Maven از پیش نصب‌شده، عرضه می‌شود.

  • به وب‌سایت SpringSource Tool Suite بروید (STS) [1]، برای دانلود نسخه فعلی STS [2A] [2B]،
  • فایل دانلود شده یک نصب‌کننده است که ساختار دایرکتوری را برای [3A] و [3B] ایجاد می‌کند. در [4]، فایل اجرایی راه‌اندازی می‌شود،
  • در [5]، پنجره کاری IDE پس از بستن پنجره خوش‌آمدگویی ظاهر می‌شود. در [6]، پنجره سرورهای برنامه نمایش داده می‌شود،
  • در [7]، پنجرهٔ سرورها. یک سرور ثبت شده است. این یک سرور VMware است که ما از آن استفاده نخواهیم کرد. در [8]، ما جادوگر افزودن سرور جدید را فراخوانی می‌کنیم،
  • در [9A]، سرورهای مختلفی به ما پیشنهاد می‌شوند. ما نصب سرور Apache Tomcat 7، [9B]، را انتخاب می‌کنیم،
  • در [10]، پوشه نصب سرور Tomcat 7 را که با NetBeans نصب شده است، مشخص می‌کنیم. اگر سرور Tomcat ندارید، از دکمه [11] استفاده کنید،
  • در [12]، سرور Tomcat در پنجره [Servers] ظاهر خواهد شد،
  • در [13]، سرور را راه‌اندازی می‌کنیم،
  • در [14]، در حال اجرا است،
  • در [15]، آن را متوقف می‌کنیم.

در پنجره [Console]، اگر همه چیز به درستی کار کند، باید لاگ‌های زیر Tomcat را مشاهده کنیم:

mai 26, 2012 8:56:51 AM org.apache.catalina.core.AprLifecycleListener init
Infos: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ...
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:55 AM org.apache.catalina.startup.Catalina load
Infos: Initialization processed in 4527 ms
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardService startInternal
Infos: Démarrage du service Catalina
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardEngine startInternal
Infos: Starting Servlet Engine: Apache Tomcat/7.0.22
mai 26, 2012 8:56:57 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
Infos: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [218] milliseconds.
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:57 AM org.apache.catalina.startup.Catalina start
Infos: Server startup in 2252 ms
  • هنوز در پنجره [Servers]، یک سرور جدید [16] اضافه کنید؛
  • در [17]، سرور GlassFish فهرست نشده است؛
  • در این مورد، از پیوند [18] استفاده کنید،
  • در [19]، ما افزودن یک آداپتور برای سرور GlassFish را انتخاب می‌کنیم،
  • که دانلود می‌شود؛ در پنجره [Servers]، یک سرور جدید اضافه می‌کنیم،
  • این بار در [21]، سرورهای GlassFish پیشنهاد می‌شوند،
  • در [22]، سرور GlassFish 3.1.2 دانلود شده با NetBeans را انتخاب کنید،
  • در [23]، پوشه نصب GlassFish 3.1.2 را مشخص کنید (به مسیری که در [24] نشان داده شده است توجه کنید)،
  • اگر سرور GlassFish ندارید، از دکمه [25] استفاده کنید،
  • در [26]، جادوگر از شما رمز عبور مدیر سرور GlassFish را می‌خواهد. برای نصب اولیه، این رمز معمولاً adminadmin است،
  • پس از اتمام کار جادوگر، در پنجره [Servers]، سرور GlassFish به صورت [27] ظاهر می‌شود،
  • در [28]؛ آن را راه‌اندازی می‌کنیم،
  • در [29]، ممکن است مشکلی پیش بیاید. این موضوع به اطلاعاتی که در حین نصب ارائه شده بستگی دارد. GlassFish به JDK (کیت توسعه جاوا) نیاز دارد و نه JRE (محیط اجرایی جاوا)،
  • برای دسترسی به ویژگی‌های سرور GlassFish، در پنجره [Servers] روی آن دوبار کلیک کنید،
  • که پنجره [20] را باز می‌کند؛ از آنجا، پیوند [Runtime Environment] را دنبال کنید،
  • در [31]، ما JRE پیش‌فرض را با یک JDK جایگزین خواهیم کرد. برای انجام این کار، از لینک [32] استفاده می‌کنیم،
  • در [33]، فایل‌های JRE نصب‌شده روی ماشین،
  • در [34]، یکی دیگر اضافه می‌شود،
  • به [35]، [Standard VM] (ماشین مجازی) را انتخاب کنید،
  • در [36]، یک JDK (≥۱.۶) را انتخاب کنید،
  • در [37]، نامی برای JRE جدید انتخاب می‌شود،
  • وقتی از شما خواسته می‌شود که JRE برای GlassFish را انتخاب کنید، ما JRE جدید را که قبلاً با نام [38] نامگذاری شده بود، انتخاب می‌کنیم،
  • پس از اتمام کار جادوگر پیکربندی، [Glassfish] و [39] را مجدداً راه‌اندازی می‌کنیم،
  • مانند [40]؛ هنگامی که راه‌اندازی شد،
  • در [41]، ساختار دایرکتوری سرور،
  • به [42]، می‌توانید به لاگ‌های GlassFish دسترسی پیدا کنید:
...
Infos: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2 (build 23)

Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:7676]
Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:3700]
Infos: Grizzly Framework 1.9.46 started in: 188ms - bound to [0.0.0.0:8080]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:4848]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:8181]
Infos: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry

Infos: GlassFish Server Open Source Edition 3.1.2 (23) heure de démarrage : Felix (13 790 ms), services de démarrage (2 028 ms), total (15 818 ms)

Infos: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://Gportpers3.ad.univ-angers.fr:8686/jndi/rmi://Gportpers3.ad.univ-angers.fr:8686/jmxrmi
  • در [43]، سرور GlassFish را خاموش می‌کنیم.

1.3.3. نصب [WampServer]

[WampServer] یک بسته نرم‌افزاری برای توسعه روی PHP / MySQL / Apache روی یک ماشین ویندوز است. ما از آن صرفاً برای SGBD و MySQL استفاده خواهیم کرد.

  • در وب‌سایت [WampServer] [1]، نسخه مناسب ([2]) را انتخاب کنید،
  • فایل اجرایی دانلود شده یک نصاب (installer) است. جزئیات مختلفی در طول نصب درخواست می‌شود. این موارد به MySQL مربوط نمی‌شوند. بنابراین می‌توان آنها را نادیده گرفت. پنجره [3] در پایان نصب ظاهر می‌شود. [WampServer] را اجرا کنید،
  • در [4]، آیکون [WampServer] در نوار وظیفه در پایین سمت راست صفحه [4] نصب می‌شود،
  • و هنگامی که روی آن کلیک می‌کنید، منوی [5] ظاهر می‌شود. این به شما امکان می‌دهد تا سرور آپاچی و SGBD MySQL را مدیریت کنید. برای مدیریت این کار، از گزینه [PhpPmyAdmin] استفاده کنید؛
  • که پنجرهٔ نمایش داده شده در زیر را باز می‌کند،

Image

ما چند جزئیات در مورد استفاده از [PhpMyAdmin] ارائه خواهیم داد. ما به سادگی نشان می‌دهیم که چگونه از آن برای ایجاد پایگاه داده برای برنامه نمونه در این آموزش استفاده کنیم.