1. Wprowadzenie
1.1. Présentation
Kod PDF w tym dokumencie to |TUTAJ|.
Przykłady zawarte w tym dokumencie są dostępne pod numerem |TUTAJ|.
W niniejszym dokumencie zamierzamy przedstawić, na podstawie przykładów
- framework Java Server Faces 2 (JSF2),
- bibliotekę komponentów PrimeFaces dla JSF2, przeznaczoną dla aplikacji biurowych i mobilnych.
Niniejszy dokument jest przeznaczony głównie dla studentów i programistów zainteresowanych biblioteką komponentów PrimeFaces oraz [http://www.primefaces.org]. Framework ten oferuje kilkadziesiąt komponentów obsługujących technologię AJAX ([http://www.primefaces.org/showcase/ui/home.jsf]), umożliwiających tworzenie aplikacji internetowych o wyglądzie i zachowaniu zbliżonym do aplikacji desktopowych. PrimeFaces opiera się na JSF2, stąd konieczność przedstawienia najpierw tego frameworka. PrimeFaces oferuje ponadto komponenty przeznaczone specjalnie dla urządzeń mobilnych. Je również omówimy.
Aby zilustrować nasze rozważania, zbudujemy aplikację do umawiania spotkań w różnych środowiskach:
- klasyczną aplikację internetową z wykorzystaniem technologii JSF2 / EJB3 / JPA na serwerze Glassfish 3.1,
- tę samą aplikację z obsługą AJAX, wykorzystującą technologię PrimeFaces,
- oraz wreszcie wersję mobilną z wykorzystaniem technologii PrimeFaces Mobile.
Za każdym razem, gdy wersja zostanie skompilowana, przeniesiemy ją do środowiska JSF2 / Spring / JPA na serwerze Tomcat 7. W ten sposób skompilujemy sześć aplikacji Java EE.
Niniejszy dokument przedstawia wyłącznie informacje niezbędne do skompilowania tych aplikacji. Nie należy zatem oczekiwać, że jest on wyczerpujący. Nie znajdziemy w nim wszystkich szczegółów. Nie jest to również zbiór dobrych praktyk. Doświadczeni programiści mogą uznać, że postąpiliby inaczej. Mam jedynie nadzieję, że niniejszy dokument nie stanowi również zbioru złych praktyk.
Aby pogłębić wiedzę na temat JSF2 i PrimeFaces, można skorzystać z następujących źródeł:
- [ref1]: Samouczek Java EE5, [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML] – podręcznik firmy Sun do nauki języka Java EE5. Warto zapoznać się z częścią II [Web Tier], aby poznać technologie internetowe, a w szczególności JSF. Przykłady z samouczka można pobrać. Są one dostępne w postaci projektów NetBeans, które można załadować i uruchomić,
- [ref2]: „Core JavaServer Faces” autorstwa Davida Geary’ego i Cay’a S. Horstmanna, wydanie trzecie, wydawnictwo Mc Graw-Hill,
- [ref3]: dokumentacja PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
- [ref4]: dokumentacja do PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].
Czasami będziemy odwoływać się do [ref2], aby wskazać czytelnikowi, że może pogłębić swoją wiedzę w danym obszarze dzięki tej książce.
Dokument został napisany w taki sposób, aby był zrozumiały dla jak najszerszego grona odbiorców. Wymagania niezbędne do jego zrozumienia są następujące:
- znajomość języka Java,
- podstawowa znajomość programowania w Javie EE.
Na stronie [http://developpez.com] można znaleźć wszystkie materiały niezbędne do spełnienia tych wymagań. Niektóre z nich są dostępne na stronie [http://tahe.developpez.com]:
- [ref5]: Wprowadzenie do programowania internetowego w języku Java z wykorzystaniem serwletów i stron JSP (2002): przedstawia podstawy programowania internetowego w języku Java: serwlety i strony JSP,
- [ref6]: Podstawy tworzenia stron internetowych w architekturze MVC w Javie na przykładach (2006): zaleca tworzenie aplikacji internetowych w architekturze trójwarstwowej, w której warstwa internetowa realizuje wzorzec projektowy (Design Pattern) MVC (Model, Widok, Kontroler).
- [ref7]: Wprowadzenie do Java EE z wykorzystaniem środowiska NetBeans i serwera aplikacji GlassFish (2012). Dokument ten pozwala zapoznać się z JSF 1 oraz EJB3.
- [ref8]: Trwałość danych w Javie 5 na przykładach (2007). Niniejszy dokument pozwala zapoznać się z trwałością danych za pomocą JPA (Java Persistence API).
- [ref9]: TTworzenie serwisu internetowego Java EE przy użyciu środowiska NetBeans 6.5 i serwera Java EE GlassFish (2009). Niniejszy dokument omawia proces tworzenia serwisu internetowego. Przykładowa aplikacja omówiona w niniejszym dokumencie pochodzi z [ref9].
1.2. Przykłady z
Przykłady zawarte w niniejszym dokumencie są dostępne w URL i [TUTAJ] w postaci projektów Maven zarówno dla NetBeans, jak i Eclipse:
![]() |
Aby zaimportować projekt do środowiska NetBeans:
![]() |
- w [1] otwieramy projekt,
- w [2] należy wskazać projekt do otwarcia w systemie plików,
- w [3] projekt zostaje otwarty.
W programie Eclipse,
![]() |
- w [1] importuje się projekt,
- w [2] projektem jest istniejący projekt Maven,
![]() |
![]() |
- w pliku [3]: wskazujemy go w systemie plików,
- w [4]: Eclipse rozpoznaje go jako projekt Maven,
- w [5] – zaimportowany projekt.
1.3. Wykorzystane narzędzia
W dalszej części korzystamy (maj 2012 r.) z:
- IDE (zintegrowane środowisko programistyczne) NetBeans 7.1.2 dostępne na URL [http://www.netbeans.org],
- Eclipse Indigo IDE [http://www.eclipse.org/] w dostosowanej wersji SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
- PrimeFaces w wersji 3.2 dostępnej na URL [http://primefaces.org/],
- PrimeFaces Mobile w wersji 0.9.2 dostępnej w URL [http://primefaces.org/],
- WampServer dla SGBD, MySQL i [http://www.wampserver.com/].
1.3.1. Instalacja programu NetBeans IDE
Poniżej opisujemy instalację programu NetBeans 7.1.2 dostępnego w plikach URL i [http://netbeans.org/downloads/].
![]() |
Można skorzystać z powyższej wersji Java o numerze EE wraz z dwoma serwerami: GlassFish 3.1.2 i Apache Tomcat 7.0.22. Pierwszy z nich umożliwia tworzenie aplikacji Java EE z wykorzystaniem EJB3 (Enterprise Java Bean), a drugi – aplikacji Java EE bez EJB. Następnie zastąpimy EJB frameworkiem Spring.
Po pobraniu instalatora NetBeans uruchomimy go. W tym celu konieczne jest posiadanie JDK (Java Development Kit) oraz [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Oprócz NetBeans 7.1.2 zainstalujemy:
- framework JUnit do testów jednostkowych,
- serwer Glassfish 3.1.2,
- serwer Tomcat 7.0.22.
Po zakończeniu instalacji uruchamiamy NetBeans:
![]() |
- w [1], NetBeans 7.1.2 z trzema zakładkami:
- zakładka [Projects] wyświetla otwarte projekty NetBeans;
- zakładka [Files] wyświetla różne pliki składające się na otwarte projekty NetBeans;
- zakładka [Services] zawiera szereg narzędzi wykorzystywanych w projektach NetBeans,
- w [2] aktywuje się zakładkę [Services], a w [3] gałąź [Servers],
- w [4] uruchamia się serwer Tomcat w celu sprawdzenia, czy został poprawnie zainstalowany,
![]() |
- w [6], w zakładce [Apache Tomcat] [5], można sprawdzić, czy serwer został poprawnie uruchomiony,
- w [7] zatrzymujemy serwer Tomcat,
W ten sam sposób sprawdzamy prawidłową instalację serwera Glassfish 3.1.2:
![]() |
- w [8] uruchamia się serwer Glassfish,
- w [9] sprawdzamy, czy uruchomił się poprawnie,
![]() |
- przy [10] zatrzymujemy go.
Mamy teraz działający serwer IDE. Możemy zacząć tworzyć projekty. W zależności od nich będziemy musieli szczegółowo omówić różne cechy serwera IDE.
Teraz zainstalujemy Eclipse o numerze IDE i zarejestrujemy w nim dwa serwery: Tomcat 7 oraz Glassfish 3.1.2, które właśnie pobraliśmy. W tym celu musimy znać lokalizacje folderów instalacyjnych tych dwóch serwerów. Informacje te można znaleźć we właściwościach obu serwerów:
![]() |
- w [1] – folder instalacyjny serwera Tomcat 7,
![]() |
- w [2], folder domen serwera Glassfish. W wpisie dotyczącym Glassfish w Eclipse należy podać jedynie następującą informację: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].
1.3.2. Instalacja Eclipse
Chociaż Eclipse nie jest wersją IDE, z której korzystamy w niniejszym dokumencie, przedstawiamy jednak proces jego instalacji. Przykłady zawarte w dokumencie są bowiem dostarczane również w postaci projektów Maven dla Eclipse. Eclipse nie posiada wbudowanego środowiska Maven. Aby to zrobić, należy zainstalować wtyczkę. Zamiast instalować sam program Eclipse, zainstalujemy pakiet narzędziowy SpringSource Tool Suite [http://www.springsource.com/developer/sts], czyli wersję Eclipse wyposażoną w liczne wtyczki związane z frameworkiem Spring, a także z preinstalowaną konfiguracją Maven.
![]() |
- przejdź na stronę SpringSource Tool Suite (STS) [1], aby pobrać aktualną wersję STS [2A] [2B],
![]() |
![]() |
- pobrany plik jest instalatorem, który tworzy strukturę katalogów [3A] [3B]. W [4] uruchamia się plik wykonywalny,
- w pliku [5] wyświetla się okno robocze programu IDE po zamknięciu okna powitalnego. W pliku [6] wyświetla się okno serwerów aplikacji,
![]() |
- w [7] – okno serwerów. Zarejestrowany jest jeden serwer. Jest to serwer VMware, którego nie będziemy używać. W [8] wywołujemy kreatora dodawania nowego serwera,
![]() |
- w oknie [9A] wyświetlane są różne serwery do wyboru. Decydujemy się na instalację serwera Tomcat 7 firmy Apache ([9B]),
![]() |
- w [10], wskazujemy folder instalacyjny serwera Tomcat 7 zainstalowanego wraz z NetBeans. Jeśli nie posiadamy serwera Tomcat, należy użyć przycisku [11],
- w [12], serwer Tomcat pojawi się w oknie [Servers],
![]() |
- w oknie [13] uruchamiamy serwer,
- w oknie [14] – serwer jest uruchomiony,
- w oknie [15] zatrzymujemy go.
W oknie [Console], jeśli wszystko przebiegło pomyślnie, otrzymujemy następujące logi z serwera Tomcat:
![]() |
- nadal w oknie [Servers] dodajemy nowy serwer [16],
- w oknie [17] serwer Glassfish nie jest wyświetlany,
- w takim przypadku należy skorzystać z linku [18],
![]() |
- w [19] wybieramy opcję dodania adaptera dla serwera Glassfish,
- który zostaje pobrany, a po powrocie do okna [Servers] dodajemy nowy serwer,
- tym razem w oknie [21], pojawiają się serwery Glassfish,
![]() |
- w oknie [22] wybieramy serwer Glassfish 3.1.2 pobrany wraz z NetBeans,
- w [23] wskazujemy folder instalacyjny Glassfish 3.1.2 (należy zwrócić uwagę na ścieżkę podaną w [24]),
- jeśli nie masz serwera Glassfish, użyj przycisku [25],
![]() |
- w oknie [26] kreator prosi o podanie hasła administratora serwera Glassfish. Przy pierwszej instalacji jest to zazwyczaj adminadmin,
- po zakończeniu pracy kreatora, w oknie o numerze [Servers] pojawia się serwer Glassfish o numerze [27],
![]() |
- w oknie [28] uruchamiamy go,
- w oknie [29] może wystąpić problem. Zależy to od informacji podanych podczas instalacji. Glassfish wymaga JDK (Java Development Kit), a nie JRE (Java Runtime Environment),
- aby uzyskać dostęp do właściwości serwera Glassfish, należy dwukrotnie kliknąć na nim w oknie [Servers],
- otwiera się okno [20], w którym należy kliknąć link [Runtime Environment],
![]() |
- w [31] należy zastąpić domyślnie używany JRE na JDK. W tym celu należy skorzystać z linku [32],
- w [33], JRE zainstalowane na komputerze,
- w [34] dodaje się kolejny,
![]() |
- na [35], wybieramy [Standard VM] (maszyna wirtualna),
- w [36] wybieramy JDK (>=1.6),
- w przypadku [37], nowa nazwa to JRE,
![]() |
- po powrocie do wyboru JRE dla Glassfish wybieramy nowy JRE zadeklarowany jako [38],
- po zakończeniu pracy kreatora konfiguracji uruchamiamy ponownie [Glassfish] i [39],
- w [40], uruchamia się,
![]() |
- w [41], drzewo katalogów serwera,
- w [42] uzyskuje się dostęp do logów Glassfish:
![]() |
- w pliku [43] zatrzymujemy serwer Glassfish.
1.3.3. Instalacja [WampServer]
[WampServer] to pakiet oprogramowania służący do programowania w PHP / MySQL / Apache na komputerze z systemem Windows. Będziemy go używać wyłącznie dla SGBD i MySQL.
![]() |
- na stronie [WampServer] [1] należy wybrać odpowiednią wersję [2],
- pobrany plik wykonywalny jest instalatorem. Podczas instalacji wymagane jest podanie różnych informacji. Nie dotyczą one MySQL. Można je zatem pominąć. Po zakończeniu instalacji wyświetla się okno [3]. Uruchamia się [WampServer],
![]() |
- w [4], ikona [WampServer] zostanie umieszczona na pasku zadań w prawym dolnym rogu ekranu [4],
- po kliknięciu na nią wyświetla się menu [5]. Umożliwia ono zarządzanie serwerem Apache oraz SGBD i MySQL. Aby nim zarządzać, należy skorzystać z opcji [PhpPmyAdmin],
- po czym pojawia się poniższe okno,

Nie będziemy szczegółowo omawiać korzystania z [PhpMyAdmin]. Pokażemy jedynie, jak użyć go do utworzenia bazy danych dla przykładowej aplikacji z tego samouczka.






























