WebKiv: IntegraceSpringMVCDoOpenCms |
from Wiki KIVu |
Pro zjednodušení výkladu je v následujícím dokumentu použita při odkazování na adresáře následující konvence:
TOMCAT_HOME
je adresář, ve kterém je nainstalován tomcat, na kterém je OpenCms nasazeno
OPENCMS_HOME
je adresář, ve kterém je běžící OpenCms (standardně TOMCAT_HOME\webapps\opencms
)
Tento návod je napsán tak, že i ve Spring MVC nezkušenému uživateli poskytne návod na to, jak tento framework zaintegrovat do OpenCms. Nicméně je doporučeníhodné projít si nejdříve Spring MVC Step By Step Tutorial, který je standardně v distribuci Spring Framweworku. Dále uvedený postup pro vás poté bude daleko více srozumitelnější.
Instalace Spring MVC frameworků se obecně skládá z následkujících bodů:
Předtím, než budete pokračovat v čtení a provádění tohoto tutoriálu, zastavte prosím tomcata.
web.xml
Do souboru web.xml
(OPENCMS_HOME\WEB-INF
) se musí doplnit nastavení DispatcherServletu
Spring MVC a jeho namapování na URL. Volitelně se může přidat definice tld
souboru pro knihovnu značek Springu. (Při použití nové verze servletů toto odpadá, neboť všechny jar soubory na classpath jsou javou skenovány a všechny nalezené *.tld
soubory jsou automaticky přidány. Nicméně není na závadu, pokud je tld
soubor explicitně v web.xml
specifikován.)
Do web.xml
doplňte následující definici servletu a jeho mapování:
<!-- Spring MVC Sample App Servlet --> <servlet> <servlet-name>springmvcapp</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Servlet Mapping --> <servlet-mapping> <servlet-name>springmvcapp</servlet-name> <url-pattern>/springmvcapp/*</url-pattern> </servlet-mapping>
Stěžejnímy body v tomto kódu je element: <servlet-name>springmvcapp</servlet-name>
, neboť udává, v jakém soubor bude Spring MVC hledat svá nastavení.
Jako další bod je potřeba přidat definici tld
souboru. Toto se provede tím, že se do elementu <jsp-config>
přidá následující kód:
<jsp-config> ... <taglib> <taglib-uri>/spring</taglib-uri> <taglib-location>/WEB-INF/tld/spring-form.tld</taglib-location> </taglib> </jsp-config>
tld
(Tag library deskriptor) souboru s popisem taglib Spring-formsTento soubor musí být zkopírován do adresáře zadaného v minulém kroku. V našem případě je to tedy OPENCMS_HOME/WEB-INF/tld/
. Soubor se nachází v distribuci Spring frameworku v adresáři: spring-framework-2.5.X/dist/resources/
.
Spring MVC požaduje konfigurační soubor, ve kterém jsou uloženy definice beans a dalších java tříd, které při své činnosti potřebuje. Jméno tohoto souboru je určeno jménem servletu - viz. výše v souboru web.xml
a příponou –servlet.xml
. V našem případě se tedy tento soubor bude jmenovat springapp-servlet.xml
. A bude ležet na stejné adresářové úrovni jako soubor web.xml
. Tento soubor bude vypadat následujícím způsobem:
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- the application context definition for the springapp dispatcherservlet --> </beans>
Výše uvedená, na ještě prázdný soubor obsáhlá definice, je důležitá pro správnou funkci nástrojů, například pro podporu Springu v Eclipse.
applicationContextem
pro SpringVzhledem k tomu, že konfigurační soubor Spring MVC není jediným místem, ze kterého si Spring může načítat definice java bean, je možné a i důrazně doporučené oddělit konfigurační soubor Spring MVC od ostatních konfiguračních souborů Springu. Tím se zaručí to, že se mezi sebou nemíchají definice beanů, které jsou použiti v zobrazovací vrstvě s definicemi beanů, které se například starají o přístup k databázi. Toho se docílí tím, že se do souboru web.xml
přidá následující kód:
<listener> <listenerclass>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
Spring poté bude hledat soubor applicationContext.xml
, který musí ležet na stejné úrovni jako soubor web.xml
(pokud se nenastaví jinak). Prázdný soubor applicationContext.xml
má následující strukturu:
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> </beans>
Jako poslední krok je potřeba nahrát do OpenCms knihovny, které Spring MVC potřebuje pro svůj běh. Do adresáře: OPENCMS_HOME/WEB-INF/lib
nahrajte následující soubory:
spring-framework-2.5.6/dist
spring-framework-2.5.6/dist/modules
Nyní spusťte Tomcat a OpenCms by mělo bez chyby nastartovat. Pokud se OpenCms nerozběhlo, můžete se podívat do log souborů v adresáři: TOMCAT_HOME\webapps\opencms\WEB-INF\logs
A pokusit se v nich příčinu chyby objevit.
Zpět na FrameworkyProWebKiv