Používáme Java Server Faces a Hibernate
Z nepřeberného množství nástrojů určených k vývoji aplikací v Javě nyní zkoušíme kombinaci Java Server Faces a Hibernate. Proč právě tyto technologie?
Java Server Faces:
+ technologie vyvíjená a podporovaná Sunem
+ perfektní oddělení view od logiky aplikace
+ jednoduchost
+ možnost tvorby vlastních komponent
- nová technologie, nedostatek tutoriálů a zkušeností při vývoji
- chybí některé základní komponenty (file upload), nicméně byly již napsány třetími stranami (Oracle ADF, MyFaces)
Hibernate:
+ výkonné řešení persistence v Javě
+ relativní jednoduchost používání
+ široká vývojářská základna - mám dojem, že všichni používají Hibernate
- chabá oficiální dokumentace
- trvá dlouho, než pochopíte souvislosti mezi všemi objekty a naučíte se je efektivně používat
- není od Sunu (ano, pro mě je tato maličkost docela důležitá
Instalace JSF:
1. Stáhneme JSF 1.1 ze stránek Sunu.
2. Soubory {JSF}/lib/*.jar zkopírujeme do adresáře knihoven aplikačního serveru (viz. konfigurace Tomcatu).
Instalace JSTL:
1. Stáhneme Jakarta Taglibs Standard Library 1.1.2
2. Zkopírujeme {JSTL}/lib/*.jar do adresáře knihoven aplikačního serveru (viz. konfigurace Tomcatu).
Konfigurace Tomcatu:
$CATALINA_HOME/shared/lib - zde se nachazi sdilene knihovny, ktere budou pouzivat vsechny nase web aplikace.
$CATALINA_HOME/common/lib - knihovny umístěné sem jsou viditelné jak našim aplikacím, tak internímu kódu Tomcatu.
Pro JSF a JSTL jsem zvolil $CATALINA_HOME/shared/lib
Instalace JDBC:
1. JAR soubor s ovladači k rozhraní JDBC ( např. u PostgreSQL soubor pg74.215.jdbc2ee.jar) zkopírujeme do $CATALINA_HOME/common/lib
Instalace Hibernate:
1. Stáhneme Hibernate 2.1.6 a Hibernate-extensions 2.1.2 ze Sourceforge.
2. Hibernate vyžaduje, aby všechny jeho knihovny byly součástí WEB-INB/lib u každého projektu. Prý by pak nastaly problémy s nástroji jako Log4j, commons-logging a dalšími (ještě jsem nezkoušel) .
Znamená to, že pokud vyvíjíme Hibernate aplikaci, kterou potřebujeme opakovaně zkoušet-deployovat na vzdálený Tomcat server, tak vytvořený war archiv bude neúměrně velký právě díky těmto knihovnám :). Pokud nemáme rychlé inet připojení, je vhodné instalovat Tomcat lokálně.
Není však třeba kopírovat všechny knihovny z {HIBERNATE}/lib/, stačí jen ty, které potřebujeme. Seznam vyžadovaných a volitelných najdeme v {HIBERNATE}/lib/README.txt}
Jak řešíte instalaci Hibernate knihoven vy?
Hibernate-extensions:
Tady najdeme pomocné nástroje k Hibernate, např. hbm2java (CodeGenerator) a class2hbm (MapGenerator). Tyto knihovny většinou nepoužíváme přímo v našich aplikacích, spíše k počáteční inicializaci - vytvoření základních java souborů z hibernate mappings, nebo skeletonu hibernate mappings ze zkompilovaných tříd (pomocí reflexe)-jedná se však jen o zakladní generaci, která vyžaduje ruční doladění.
Odkazy:
Java Server Faces Technology
Hibernate
Jakarta Tomcat
JSP(tm) Standard Tag Library
Oracle ADF
MyFaces
UPDATE 24.11.2004: Doplněna instalace JSTL a zbývajících knihoven JSF.