PIA/JSF
Java Server Faces je deo gradiva koji se obrađuje tokom prve polovine predmeta. Vodič ispod je namenjen da pomogne studentima koji vežbaju za kolokvijum, kako bi uspešno postavili sve alate, pronašli uzrok nekih greški, i tako dalje.
Postavka
Slično kao na Informacionim sistemima 1, u ovom delu gradiva se radi sa Jakarta EE tehnologijom, unutar NetBeans razvojnog okruženja. Na stranici predmeta postoji uputstvo za postavku alata, koje se delom reprodukuje ovde sa određenim dodacima, ali u zavisnosti od godine i ažurnosti ovog vodiča može biti noviji od preporuka koje se pominju ovde.
Koraci kako biste postavili sve alate su:
- Preuzeti i instalirati JDK 11.0.6 za vaš operativni sistem, korišćenjem instalera
- Preuzeti i instalirati NetBeans 14 razvojno okruženje za vaš operativni sistem, korišćenjem instalera, i tokom instalacije izabrati prethodno instalirani JDK
- Kao na IS1, ne instalirajte NetBeans u direktorijum sa razmakom u putanji. Ukoliko ga instalirate u Program Files direktorijum, reinstalirajte ga.
- Unutar NetBeans, u levoj traci, pod Services tabom, nakon desnog klika na Servers opciju izabrati Add Server, kao tip servera odabrati GlassFish Server, odabrati verziju 6.2.1, promeniti putanju za instalaciju ukoliko je potrebno, saglasiti se sa uslovima korišćenja i preuzeti GlassFish Server, zatim završiti postavku servera sa podrazumevanim opcijama
Pri pravljenju projekta, potrebno je:
- Izabrati opciju za pravljenje novog projekta, a unutar nje Web Application pod Java with Maven kategorijom
- Izabrati prethodno postavljeni GlassFish Server kao i Jakarta EE 9 Web
- Nakon pravljenja projekta, u
web.xmlfajl, unutar<web-app>je potrebno dodati sledeće:<servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>jakarta.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.xhtml</welcome-file> </welcome-file-list>
- Nakon pravljenja JSF stranice, u
<html>je neophodno dodatixmlns:h="http://xmlns.jcp.org/jsf/html", kako bi JSF tagovi tipa<h:tag>radili, a zatim dodatih:prefiks u<head>i<body>- Ukoliko koristite tagove tipa
<f:tag>, NetBeans bi trebalo da vam automatski predlaže te tagove i čim iskoristite predlog će uvesti odgovarajući XML imenski prostor
- Ukoliko koristite tagove tipa
Alternativno, preuzmite postavku projekta sa stranice predmeta i koristite nju umesto da pravite projekat ispočetka.
Migracija sa Java EE 8
Na predmetu se do školske 2022/2023. godine radilo na Java EE 8 platformi, kad se prešlo na Jakarta EE 11. Zbog ovoga, snimci vežbi iz tog perioda se mogu malo razlikovati od trenutne procedure, uglavnom po proceduri pravljenja projekta opisanoj iznad.
Pored broja, postoji par razlika između rada sa ove dve verzije:
- GlassFish Server verzija 6.2.1 ne radi sa JDK 11
javaxpaket je preimenovan ujakarta@FacesConfiganotacija više nije neophodna iznad bean-ova- Validacione poruke se neće prikazivati ukoliko ne dodate
<h:messages>u formu.
Ne preporučuje se menjanje verzije u postojećem Java EE 8 projektu, već pravljenje novog projekta, kopiranje fajlova u njega i zatim ažuriranje na način pomenut iznad.
Česte greške
- Kao pravilo, ukoliko imate neku čudnu grešku, probajte prvo sa Clean and Build projekta.
- Ukoliko NetBeans ne prikazuje sugestije za tagove u JSF fajlovima, proverite da li ste postavili
xmlns:hatribut kako je gore opisano. - Kada pravite managed bean, NetBeans podrazumevano izgeneriše kod koji uvozi
javaxpaket, i potrebno je promeniti ga najakartapaket. - Ukoliko greška pominje kako
org.glassfish.exousia.modules.locked.SimplePolicyConfigurationklasa ne postoji, prvo proverite da li ste dobro napisali tagove uweb.xml. Šanse su, takođe, da vam se pokreće stari GlassFish server. Pokušajte da zaustavite GlassFish server kroz Services tab, zatim obrišite sve stare GlassFish Server instalacije i pokrenite server opet. - Ukoliko vam uvoženje CSS fajlova pomoću
<h:outputStylesheet>ne radi, proverite da li vam u dokumentu piše<head>umesto<h:head>. - Ukoliko NetBeans i dalje raspakuje indeks Maven centralnog repozitorijuma, pretraga paketa prilikom dodavanja MySQL Connector/J neće raditi. U tom slučaju, preuzmite postavku projekta sa stranice predmeta i iskopirajte ceo
<dependencies>tag u svojpom.xmlfajl, a zatim uradite desni klik na projekat i pokrenite Build with Dependencies. - Ukoliko dobijete poruku The Java DB location is not set correctly, možete da je ignorišete jer ne koristite Java DB. Ipak, ukoliko želite da se rešite ove poruke, pod Services → Databases, desnim klikom na Java DB a zatim Properties možete promeniti Java DB Installation tako da umesto na neku prethodnu instalaciju GlassFish Server pokazuje na trenutnu.