Springowe portlety JSR-168
Dzisiejszy dzień straciłem na przypominanie sobie rzeczy, które już kiedyś udało mi się zrobić ( zresztą sytuacja ta nie zdarzyła się pierwszy raz ). Jako że pamięć jest zawodna - naprawiam swój błąd - w kilku zdaniach postaram opisać się problemy jakie występują przy uruchamianiu portletów Spring-może jeszcze komuś się to przyda.
Pierwotnym źródłem moich wariacji na temat wykorzystania Springa do pisania portletów jest przykład upubliczniany na stronie projektu Spring Portlets MVC. W przypadku JBoss wykorzystałem jego wersję prekonfigurowaną, przystosowaną do uruchamiania w JBoss Portal.
Na początek przytoczę kilka zasad, które pochodzą z readme dołączanego do przykładów. Należy bezwzględnie zwrócić na nie uwagę - są one bardzo ważne i mają kluczowe znaczenie przy próbach uruchomienia portletów na różnych kontenerach.
- Należy zwrócić szczególną uwagę na to, by nie doszło do konfliktu pomiędzy bibliotekami dołączanymi do projektu a tymi, które znajdują się w współdzielonych bibliotekach kontenera.
- Przykłady oparte są na standardzie JSP 2.0 i JSTL 1.1. Nie będą poprawnie działać na kontenerach, które nie wspierają tych standardów. W przypadku podjęcia próby uruchomienia portletów na starszych kontenerach należy usunąć z pliku web.xml wszystkie wpisy dotyczące taglibów JSTL.
- Bezpośrednie umieszczenie przykładów na serwerze jest niewystarczające. W zależności od rodzaju kontenera, aplikacja musi zostać odpowiednio uruchomiona (deploy). Kontenery nie zawsze wyposażone są w mechanizmy auto-deploy, dlatego często wymagane modyfikacje plików konfiguracyjnych należy przeprowadzić samemu. Najczęstsze zmiany to:
1. Modyfikacje pliku web.xml. Należy przede wszystkim zamieścić informacje w jaki sposób kontener obsługuje kontekst portletów. Np. może to być jeden serwlet sterujący, bądź jeden serwlet dedykowany jednemu portletowi.
2. Należy bezwzględnie pamiętać o dostarczeniu bibliotek zawierających zdefiniowane w standardzie JSR-168 tagi JSP, oraz klasy implementujące je. Implementacja tych tagów, jest zależna od rodzaju kontenera. Najczęściej są one zgrupowane w pliku portlet.tld (w przypadku przykładów umieszczony jest w katalogu /lib). Dla kontenerów realizujących specyfikację Servlet 2.4 biblioteki te mogą być udostępnione przez dołączenie ich do class-loadera (np /WEB-INF/lib), dla innych konterów powinny zostać dołączaone jako plik znajdujący się w podkatalogu /WEB-INF.
3.Należy pamiętać, że czasami kontenery wymagają konfiguracji dodatkowej.
Wykorzystywane narzędzia:
Brak komentarzy:
Prześlij komentarz