Pierwszy projekt JSF w Eclipse IDE

In Polish:


Wielu może uznać to za co najmniej dziwne iż pisząc aplikacje w JSF praktycznie nie używam i co więcej do dzisiaj nie potrafiłem nawet stworzyć projektu JSF w Eclipse! Na swoją obronę dodam iż Eclipse jeśli chodzi o prostotę utworzenia projektu JSF nie jest zbyt prosty, na pewno wersja Galileo której dzisiaj używałem jest łatwiejsza niż Ganymede na którym próbowałem poprzednio... jednak to nadal nie ten poziom co NetBeans. A problem był dość prosty, ale jak zawsze okazuje się to dopiero po jego rozwiązaniu :(
Od początku.
Tworzę nowy Dynamic Web Project, ustawiam dla niego konfigurację JSF 1.2, oraz dodaję biblioteki... Miałem już pobrane biblioteki JSF 1.2, dodałem je więc do nowego User Library, dodałem także JSTL 1.2, który też jest wymagany. Tworze projekt... od tego momentu, męczyłem się okropnie... kontener po prostu nie znajdował javax.faces.webapp.FacesServlet. No jakie to proste, ale przecież mam to w bibliotekach! Nie pomogły krzyki ani groźby, projekt nie chce ruszyć i wywala mi błędy. Chwila zastanowienia... coś musi być nie tak z bibliotekami, oglądam, przeglądam, poprawiam, dodaje, usuwam ...i NIC.
Jest takie powiedzenie: "Jak wszystko inne zawiedzie, przeczytaj instrukcje obsługi." Pora więć poszukać postów ludzi mądrzejszych i może jakiś tutorial przeczytać/przerobić... Jak już szukać to najlepiej na stronie Eclipse: http://help.eclipse.org/galileo/index.jsp . O ile struktura fajnie działa na Ajaxie, o tyle jest problem z udostępnieniem dokładnego linka, pozostaje mi podać ścieżkę:

  1. Getting Started
  2. Concepts
  3. Tasks
  4. Reference
  5. What's new
  6. Legal

Tak wygląda interesująca mnie sekcja. Początkowo otworzyłem zakładkę Tasks a tam jak na moje życzenie: Creating New JSF Projects. Utworzyłem kolejny nowy projekt, ale... on też nie działa... uznałem że czas odrzucić precz godność i zajrzeć do zakładki Getting Started, zawierającej raptem 4 dokumenty w tym jeden z JSF w tytule: JSF Basic Tutorial.
Dzięki niemu wreszcie projekt działa! Ale właściwie co było nie tak? Sam nie wiem, to było moje może 5 otwarcie Eclipse, przy czym zwykle kończyło się to brakiem porozumienia i jego zamknięciem... Jednak coś z bibliotekami, to wiem na pewno...
Co jednak trzeba było zrobić inaczej:
Przy nowym projekcie, gdy widać okno JSF Capabilities, wybieramy User Library a następnie ikonkę z dyskietką i strzałeczką symbolizujące pobranie bibliotek(Download library). W nowym okienku należy wybrać werjsę JSF firmy Sun i zaczekać na ukończenie pobierania. Po pobraniu trzeba jeszcze dodać bibliotekę JSTL, jednak nie jak to zrobiłem poprzednio. Klikamy w ikonkę bibliotek(Mandage libraries) a następnie należy dodać nową bibliotekę JSTL 1.2 do której już we własnym zakresie trzeba dodać (przycisk Add JARs) plik jstl-1.2.jar.
To tyle jeśli chodzi o biblioteki, wszystko teraz działa tak jak działać powinno a ja zdałem sobie sprawę że Eclipse nie jest takie złe ;) Podoba mi się choćby edycja plików JSP w Web Page Editor, jednak nie jest on domyśly i trzeba go wywoływać poprzez kliknięcie na pliku .JSP i wybranie opcji: Open With->Web Page Editor. Bardzo dobrze sprawuje się także okno zarządzania plikiem faces-config, przydatne są choćby wizardy tworzenia nowych Managed Beansów.
Moim zdaniem zespół Eclipse powinien jeszcze uprościć tworzenie projektów. Dobrym przykładem jest tutaj NetBeans gdzie dla nowego projektu można dodać biblioteki JSF, Spring, Hibernate... NetBeans generuje nawet proste plik żeby było wiadomo od czego zacząć.

Na koniec tutoriala można uruchomić swoją aplikację, ale należy uważać jak ją się uruchomi, należy bowiem zaznaczyć plik login.jsp i dobiero wtedy uruchomić serwer, w przeciwnym wypadku dostaniemy ładne okienko błędu.

Wad Eclipse ciąg dalszy: chciałem jako startowy skonfigurować plik index.html który przekierowywał by do pliku faces/login.jsp mimo wielu prób nie udało mi się, serwer(Tomcat) zawsze startował z adresem /faces/index.jsp, naprawdę irytujące. Sama próba skonfigurowania spliku faces/login.jsp w web.xml jako startowego, też nie dała żadnych efektów. Dlaczego to działa w NetBeans?! Na koniec Tomcat by działać, tworzy w workspace swój folder/projekt o nazwie : Servers w dodatku jest on niezbędny do jego działania... jedyny plus to szybki dostęp do plików konfiguracyjnych Tomcata. Jedynym rozwiązaniem jest utworzenie pliku index.jsp i traktowanie go jako stałego i niekonfigurowalnego pliku uruchamiania aplikacji.
Dla zainteresowanych może on wyglądać na przykład tak:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"\>
<meta http-equiv="Refresh" content="0; URL=login.jsp" />
<title>Czekaj</title>
</head>
<body>
<h1>Czekaj na przekierowanie do serwisu...</h1>
</body>
</html>

Podsumowując podaję pełną ścieżkę do tutoriala dzięki któremu uznałem iż Eclipse nie jest takie złe na jakie wygląda ;)

http://help.eclipse.org/galileo/index.jsp

Wszystkim początkującym życzę miłego czytania i samych pozytywnych emocji przy pracy z Eclipse+JSF! ;)

Ps. Na koniec mam prośbę do wszystkich czytających znających Eclipse w miarę ich możliwości o wyjaśnienie mi skąd te moje problemy się właściwie wzięły? Pozdrawiam.



Share on Hacker News
Share on LinkedIn


← Home


Want to learn more?

Sign up to get a digest of my articles and interesting links via email every month.

* indicates required

Please select all the ways you would like to hear from Krzysztof Kula:

You can unsubscribe at any time by clicking the link in the footer of my emails.

I use Mailchimp as a marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.