Hlavní menu

Nástroje

WebKiv / IntegraceSpringMVCDoOpenCms

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

Updated 30 June 2009, 09:17 by JaroslavPavuk

WebKiv.IntegraceSpringMVCDoOpenCms History

Hide minor edits - Show changes to markup

30 June 2009, 09:17 by JaroslavPavuk -
Changed lines 112-115 from:

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.

to:

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

30 June 2009, 09:08 by JaroslavPavuk -
Changed line 6 from:
  • Spring Framwork 2.5.6 (obsahuje i MVC)
to:
  • Spring Framework 2.5.6 (obsahuje i MVC)
30 June 2009, 09:08 by JaroslavPavuk -
29 June 2009, 19:57 by Tomas Peterka -
Added lines 1-112:

Integrace Spring MVC do OpenCms

Softwarové požadavky

  • OpenCms 7.0.5 a teoreticky vyšší
  • Spring Framwork 2.5.6 (obsahuje i MVC)
  • Java 1.5 a vyšší

Používaní konvence

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)

Než začnete číst tento tutoriál

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ší.

Integrace Spring MVC do OpenCms

Instalace Spring MVC frameworků se obecně skládá z následkujících bodů:

1. Zastavte Tomcat

Předtím, než budete pokračovat v čtení a provádění tohoto tutoriálu, zastavte prosím tomcata.

2. Úprava souboru 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>

3. Přidání tld (Tag library deskriptor) souboru s popisem taglib Spring-forms

Tento 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/.

4. Vytvoření souboru s definicí beans a nastavení Spring MVC

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.

5. Přidání souboru s applicationContextem pro Spring

Vzhledem 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>

6. Přidání knihoven Spring MVC do OpenCms

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.jar z adresáře: spring-framework-2.5.6/dist
  • spring-webmvc.jar z adresáře: spring-framework-2.5.6/dist/modules

7. Test instalace

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.