Skip to content

1. Вступ

1.1. Présentation

PDF цього документа — це |TYT|.

Приклади з цього документа доступні |TYT|.

Тут ми пропонуємо ознайомити вас, на прикладі

  • фреймворк 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. Отже, ми створимо шість Java-додатків EE.

У цьому документі викладено лише те, що необхідно для створення цих додатків. Тому не слід очікувати від нього вичерпності — її тут не знайдете. Це також не збірник найкращих практик. Досвідчені розробники можуть дійти висновку, що вони зробили б це інакше. Я лише сподіваюся, що цей документ також не є збірником поганих практик.

Для більш детального вивчення JSF2 та PrimeFaces можна скористатися наступними довідковими матеріалами:

  • [ref1]: Посібник з Java EE5, [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML] — довідник від Sun для ознайомлення з Java EE5. Прочитайте розділ II [Web Tier], щоб ознайомитися з веб-технологіями, зокрема з JSF. Приклади з посібника можна завантажити. Вони надаються у вигляді проектів NetBeans, які можна завантажити та запустити,
  • [ref2]: «Core JavaServer Faces» Девіда Гірі та Кея С. Хорстмана, третє видання, видавництво Mc Graw-Hill,
  • [ref3]: документація до PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
  • [ref4]: документація до PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].

Іноді ми будемо посилатися на [ref2], щоб вказати читачеві, що за допомогою цієї книги він може глибше вивчити певну тему.

Цей документ написано таким чином, щоб його могли зрозуміти якомога більше людей. Для його розуміння необхідні такі попередні знання:

  • знання мови Java,
  • базові знання з розробки на Java EE.

На сайті [http://developpez.com] можна знайти всі необхідні ресурси для виконання цих вимог. Деякі з них можна знайти на сайті [http://tahe.developpez.com]:

1.2. Приклади з

Приклади з цього документа доступні за посиланнями URL та [https://stahe.github.io/jsf2-pf-pfm-juin-2012/jsf2-pf-pfm-juin-2012.zip] у вигляді проектів Maven як для NetBeans, так і для Eclipse:

  

Щоб імпортувати проєкт у NetBeans:

  • у [1] відкрийте проект,
  • у [2] вказуємо проект, який потрібно відкрити, у файловій системі,
  • у [3] — проект відкривається.

У Eclipse,

  • у [1] імпортується проект,
  • у [2] проект є існуючим проектом Maven,
  • у [3]: його вказують у файловій системі,
  • у [4]: Eclipse розпізнає його як проект Maven,
  • у [5] — імпортований проєкт.

1.3. Використані інструменти

Далі ми використовуємо (травень 2012 року):

  • IDE (Integrated Development Environment) NetBeans 7.1.2, доступний на URL [http://www.netbeans.org],
  • Eclipse Indigo у налаштованій формі Tool Suite (STS),
  • PrimeFaces у версії 3.2, доступній на URL [http://primefaces.org/],
  • PrimeFaces Mobile у версії 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/].

 

З наведених вище версій можна вибрати версію Java EE із двома серверами: Glassfish 3.1.2 та Apache Tomcat 7.0.22. Перший дозволяє розробляти Java-додатки EE з використанням EJB3 (Enterprise Java Bean), а другий — Java-додатки 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 7,
  • та [2] — папка доменів сервера Glassfish. У записі Glassfish в Eclipse потрібно вказати лише таку інформацію: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].

1.3.2. Встановлення Eclipse

Хоча Eclipse не є IDE, що використовується в цьому документі, ми все ж опишемо його встановлення. Адже приклади з цього документа також надаються у вигляді проектів Maven для Eclipse. Eclipse не постачається з попередньо інтегрованим Maven. Для цього потрібно встановити плагін. Замість того, щоб встановлювати «чистий» Eclipse, ми встановимо SpringSource Tool Suite [http://www.springsource.com/developer/sts] — версію Eclipse, яка вже містить численні плагіни, пов’язані з фреймворком Spring, а також попередньо налаштовану конфігурацію Maven.

  • перейдіть на сайт SpringSource Tool Suite (STS) [1], щоб завантажити поточну версію STS [2A] [2B],
  • завантажений файл є інсталятором, який створює структуру файлів [3A] [3B]. У [4] запускається виконуваний файл,
  • у [5] — робоче вікно IDE після закриття вікна привітання. У [6] відображається вікно серверів додатків,
  • у [7] — вікно серверів. Один сервер вже зареєстровано. Це сервер VMware, який ми не використовуватимемо. У [8] викликаємо майстер додавання нового сервера,
  • у [9A] нам пропонуються різні сервери. Ми обираємо встановити сервер Tomcat 7 від Apache [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 (Java Development Kit), а не JRE (Java Runtime Environment),
  • щоб отримати доступ до властивостей сервера Glassfish, потрібно двічі клацнути на ньому у вікні [Servers],
  • відкриється вікно [20], у якому слід перейти за посиланням [Runtime Environment],
  • у [31] замінимо JRE, що використовується за замовчуванням, на JDK. Для цього використовуємо посилання [32],
  • у [33] — JRE, встановлені на комп’ютері,
  • у [34] додається ще один,
  • на [35], вибираємо [Standard VM] (Virtual Machine),
  • у [36] вибираємо JDK (>=1.6),
  • у [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 на комп’ютері з ОС Windows. Ми будемо використовувати його виключно для SGBD та MySQL.

  • на сайті [WampServer] [1] виберіть відповідну версію [2],
  • завантажений виконуваний файл є інсталятором. Під час інсталяції запитується різноманітна інформація. Вона не стосується MySQL. Тому її можна проігнорувати. Після завершення встановлення з’явиться вікно [3]. Запустіть [WampServer],
  • у [4], іконка [WampServer] встановлюється на панелі завдань у нижньому правому куті екрана [4],
  • при натисканні на неї з’являється меню [5]. Воно дозволяє керувати сервером Apache та SGBD MySQL. Для управління ним використовується опція [PhpPmyAdmin],
  • після чого з’являється вікно, показане нижче,

Image

Ми не будемо детально зупинятися на використанні [PhpMyAdmin]. Ми просто покажемо, як використовувати його для створення бази даних для прикладу додатка в цьому посібнику.