Hlavní menu

Nástroje

WebKiv / OpenCmsBestPractices

View (print) - Edit page | Recent changes - Page history

Updated 30 June 2009, 09:18 by JaroslavPavuk

WebKiv.OpenCmsBestPractices History

Hide minor edits - Show changes to markup

30 June 2009, 09:18 by JaroslavPavuk -
Added lines 37-41:
29 June 2009, 20:48 by Tomas Peterka -
Added lines 1-36:

Během vývoje pro OpenCms byla sesbíráná následující množina Best Practices

Logujte hodně a do samostatných souborů

OpenCms dává k dispozici silný nástroj v podobě Log4J. Tento nástroj se dá použít k logování do standardního logu celého OpenCms, to je však pro vývoj vlastních modulů velice nepraktické. Lepší je tedy určitě logovat do svého samostného souboru. Návod na to: Jak vytvorit logovaci soubor pro jednotlive moduly do opencms.

Nejdříve vytvořte třídy, nahrajte je na OpenCms a až poté měňte xml konfigurační soubory

Problém se týká toho, že pokud definuji nějaké beany v konfiguračních souborech bez toho, abych si je před tím jako javovské třídy vytvořit, zkopíroval na OpenCms a publikoval, dojde k tomu, že OpenCms nahlásí při startu chybu ClassNotFoundException a nespustí se – nemá žádnou možnost, jak zjistit, že tyto třídy existují. Z tohoto důvodu je vždy potřeba nejprve vytvořit třídy, zkopírovat je na OpenCms, publikovat a až poté je možní měnit konfigurační soubory OpenCms a restartovat Tomcat.

Moduly vytvářejte v OpenCms

Ačkoliv nabízí plugin do Eclipse také možnost toho, vytvořit modul již v Eclipse a poté jej nakopírovat do OpenCms, je více osvědčeným způsobem vytvořit si modul v OpenCms, ten si do Eclipse pomocí tohoto pluginu stáhnout a zde editovat. Pro opětovné nakopírování na OpenCms se také více osvědčila možnost pouhého Copy to OpenCms Server – přímé publikování z Eclipse není na sto procent spolehlivé.

První import modulu do Eclipse

Poté, co v OpenCms vytvoříte modul, je potřeba počítat s tím, že Eclipse module developer načítá seznam modulů z OpenCms jen jednou. To znamená, že se musíte držet následujícího pořadí: 1. Vytvořit modul v OpenCms 2. Publikovat modul v OpenCms 3. Použít Eclipse průvodce pro vytváření – import modulu z OpenCms do Eclipse Pokud se Vámi vytvořený modul neobjeví ve seznamu nabízených modulů z OpenCms je potřeba zkontrolovat, zda je pagin nastaven na správnou instanci OpenCms (pokud jich máte současně nainstalováno více) a eventuelně restartovat Eclipse.

Přenos vývoje mezi více instancemi OpenCms

Pokud budete vyvíjet modul na jednom počítači v jednom prostředí a poté budete vývoj přenášet například ke kolegovi, na jiný počítač je zapotřebí mít na paměti následující: Pokud se jedná o modul, který na druhém OpenCms zatím vůbec neexistuje, není možné jej na toto OpenCms z Eclipse nakopírovat!!! Pouhé použití funkce Copy to OpenCms Server v Eclipse nestačí! Je nutné si na originálním OpenCms modul vyexportovat: Administration View – Module Management – VYBRAT MODUL – Export Module. Toto vytvoří jednoduchý zip soubor v adresáři: OPENCMS_HOME\WEB-INF\packages\modules . Tento soubor se jmenuje stejně jako modul: cz.zcu.kiv.XXXX.

Takto vyexportovaný modul je poté potřeba na druhé OpenCms neimportovat: Administration View – Module Management – Import module with http. V otevřeném dialogovém okně jednoduše zadáte cestu k souboru s modulem a potvrdíte. Modul se naimpotuje a publikuje (neuškodí, pokud publikování ještě manuálně zkontrolujete). Poté je již možné z eclipse tento modul na tomto OpenCms standardním způsobem kopírovat. Tento bod je zvláště důležitý také proto, že OpenCms všechny třídy, které si ve svých modulech vytvoříte, kopíruje do adresáře OPENCMS_HOME/WEB-INF/classes (jak je standardně od Java EE aplikace očekáváno) a zde jsou také Springem hledány (kde jinde než na classpath... ) A pokud OpenCms interně modul nevytvoří, neprovádí ani tuto činnost a Spring poté může hlásit chyby, protože své třídy prostě nenajde.

V Eclipse projektu nepoužívejte xml soubory

Pokud ve vašem projektu v Eclipse použijete nějaký xml soubor, nebude možné tento projekt - modul na OpenCms nakopírovat. Je to z toho důvodu, že OpenCms potřebuje ke všem xml souborům jejich xsd. Uvedené omezení lze například vyřešit tak, že soubor XXX.xml přejmenujete na XXX.cnf. Platí , pokud chcete ve vašem modulu mít např. další konfigurační soubor Springu.

Tip pro urychlení práce

Pokud vyvíjíte modul cz.zcu.kiv.XXX, je možné nastavit OpenCms tak, aby po startu automaticky ukazovalo na tento modul – nemusíte se poté zdlouhavě proklikávat několika adresářem: V hlavním okně zvolte Preferences a zde si dle svého přání nastavte hodnotu pole Start with folder .

29 June 2009, 20:20 by Tomas Peterka -
Deleted lines 0-20:

Odkazy na zajimave stranky

  • JSP Tag Libraries - pro renderovani vystupu na jsp strance
    • Prehled OpenSource? Java taglib: http://java-source.net/open-source/jsp-tag-libraries
    • Displaytag pro generovani tabulek: http://displaytag.sourceforge.net/1.2/
    • Jakarte Taglibs: http://jakarta.apache.org/taglibs/
  • Spring MVC
    • Knizka Spring In Action
    • Spring Reference Documentation, Kapitola 13 - Web MVC Framework http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html
    • Spring Reference Documentation, Kapitola 14 - View technologies http://static.springframework.org/spring/docs/2.5.x/reference/view.html
    • Eventuelne kapitola 15 - Integrating with other web frameworks http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html
    • Prehled Spring Forms Tagliby - spring-form.tld http://static.springframework.org/spring/docs/2.5.x/reference/spring-form.tld.html
  • Spring Web Flow
    • Reference Manual - http://static.springframework.org/spring-webflow/docs/2.0.x/reference/html/index.html
    • API - http://static.springframework.org/spring-webflow/docs/2.0.x/javadoc-api/index.html
    • Reference Application - http://richweb.springframework.org/swf-booking-faces
  • Eclipse Sysdeo Tomcat Pluin - http://www.eclipsetotale.com/tomcatPlugin.html
  • OpenCms Module Developer - http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/
    • Flash prezentace: http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/userinstructions.html
29 June 2009, 20:19 by Tomas Peterka -
Added lines 1-21:

Odkazy na zajimave stranky

  • JSP Tag Libraries - pro renderovani vystupu na jsp strance
    • Prehled OpenSource? Java taglib: http://java-source.net/open-source/jsp-tag-libraries
    • Displaytag pro generovani tabulek: http://displaytag.sourceforge.net/1.2/
    • Jakarte Taglibs: http://jakarta.apache.org/taglibs/
  • Spring MVC
    • Knizka Spring In Action
    • Spring Reference Documentation, Kapitola 13 - Web MVC Framework http://static.springframework.org/spring/docs/2.5.x/reference/mvc.html
    • Spring Reference Documentation, Kapitola 14 - View technologies http://static.springframework.org/spring/docs/2.5.x/reference/view.html
    • Eventuelne kapitola 15 - Integrating with other web frameworks http://static.springframework.org/spring/docs/2.5.x/reference/web-integration.html
    • Prehled Spring Forms Tagliby - spring-form.tld http://static.springframework.org/spring/docs/2.5.x/reference/spring-form.tld.html
  • Spring Web Flow
    • Reference Manual - http://static.springframework.org/spring-webflow/docs/2.0.x/reference/html/index.html
    • API - http://static.springframework.org/spring-webflow/docs/2.0.x/javadoc-api/index.html
    • Reference Application - http://richweb.springframework.org/swf-booking-faces
  • Eclipse Sysdeo Tomcat Pluin - http://www.eclipsetotale.com/tomcatPlugin.html
  • OpenCms Module Developer - http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/
    • Flash prezentace: http://www.redstardevelopment.nl/opencms/opencms/en/opencms/plugin/userinstructions.html