edellinen
seuraava
 

3.     Web sovelluksen asentaminen Tomcattiin. 1

3.1            Hakemistorakenne  1

3.1.1            Kirjastoista  2

3.1.2            Hakemistojen nimistä. 2

3.1.3            Vinkki XML tiedostoista  2

3.2            ServletContext 2

 

3.      Web sovelluksen asentaminen Tomcattiin

Palvelimen pystyttämisen jälkeen päästänkin itse asiaan eli laittamaan toimintaan web sovelluksia (deploy  web applications). Seuraavassa kuvataan web sovelluksen rakenteen luominen manuaalisesti (ilman war[1] pakettia) ja Tomcat-palvelimeen toimintaan laittaminen. Koodit saat tutor_osa1.zip[2] tiedostosta.

Normaalisti koko web sovellus pakataan yhteen pakettiin jonka tarkennin on war (web archive). Tämän paketin avulla sovelluksen asentaminen on niinkin yksinkertaista, että riittää sijoittaa kyseinen paketti webapps hakemistoon Tomcatin ollessa käynnissä. Tutoriaalissa ei näin ole toimittu. Syy on se, että lukijalle jää parempi kuva siitä, missä hakemistossa mikäkin tiedosto kuuluu olla.

3.1         Hakemistorakenne

Web sovellusta luodessa hakemistorakenne on oleellinen. Myös kapitaaleilla on merkitystä hakemistojen ja tiedostojen nimissä[3].

Annamme web sovelluksellemme nimeksi tutor. Luo seuraava hakemistorakenne:

1.       TOMCAT_HOME\webapps\ tutor

2.       TOMCAT_HOME\webapps\ tutor \WEB-INF

3.       TOMCAT_HOME\webapps\ tutor \WEB-INF\classes

4.       TOMCAT_HOME\webapps\ tutor \WEB-INF\lib

Lisäksi voit tehdä muita hakemistoja, esimerkiksi hakemiston 1) alle vaikkapa images hakemiston. Hakemistojen merkitys ja käyttö on seuraavanlainen

3.1.1    Kirjastoista

Jos haluat sisällyttää uuden kirjaston siten, että kaikki websovellukset voivat sitä käyttää, niin sijoita se TOMCAT_HOME\shared\lib hakemistoon.

Yksittäiset luokat voit sijoittaa kaikkien web sovellusten saataville hakemistoon TOMCAT_HOME\shared\classes.

3.1.2    Hakemistojen nimistä

Hakemistojen nimet ja sijainnit saattavat muuttua seuraavissa Tomcatin versioissa (todella epätodennäköistä, ainoa suurempi muutos käyttäjän kannalta viimeisen kahden vuoden aikana on ollut ympäristömuuttujan TOMCAT_HOME nimeäminen CATALINA_HOME nimellä).

Jos haluat käyttää tätä tutoriaalia täsmälleen sellaisena kuin se on nyt, niin käytä varmuuden vuoksi Tomcatin versiota 4.1.12. Suurella todennäköisyydellä tutoriaalin kaikki osat toimivat myös uudemmissa Tomcat-versioissa.

3.1.3    Vinkki XML tiedostoista

Käsitellessäsi täkeitä XML-tiedostoja server.xml ja web.xml kannattaa niistä pitää varmuuskopioita. Tarina tosielämästä:

Allekirjoittaneella ei Tomcat käynnistynyt XML parserointivirheiden takia. Olin editoinut XML tiedostoja notepadilla, ja sillä kävin ne jälleen läpi. Notepadillä kaikki näytti hyvältä. Avasin XML tiedostot  Borlandin JBuilderillä, ja ilmeni että server.xml tiedosto oli vaurioitunut (näkyi tyhjänä). Ilmeisesti ongelma on tiedon siirtämisessä leikepöydän kautta.

Lisäksi xml tiedostot kannattaa validoida. Vanhemmilla Jbuilderin versioilla sovelluksen web.xml tiedosto saattaa vaikuttaa validilta[5], vaikkei se sitä olisi. Tämä saattaa johtaa sovelluksen toimimattomuuteen sekä Tomcatin käynnistymisen hidastumiseen.

3.2         ServletContext

Jokaisella Web sovelluksella (jatkossa kutsun tällaista sovellusta lyhenteellä WEBAPP) on yksi ServletContext. Tämän olion avulla kaikki samaa WEBAPPiin kuuluvat servletit ja JSP:t voivat käyttää yhteisiä olioita. ServletContextin voisi kuvata yhteisenä muistiavaruutena saman web sovelluksen komponenttien kanssa (käytännössä samaan WEBAPPiin kuuluvat komponentit ovat siis samassa alihakemistossa TOMCAT_HOME\webapps\websovelluksen_nimi)

ServletContextin voi ilmoittaa server.xml tiedostossa. Tämä on välttämätöntä, mikäli haluat esimerkiksi saada sovelluksesi lokitiedot eri tiedostoon kuin muiden sovellusten lokitiedot.

ServletContext ilmoitetaan lisäämällä Context-elementti HOST-elementin sisään TOMCAT_HOME/conf/server.xml tiedostoon.

Lisätään seuraava teksti Host- elementin sisään (juuri ennen elementin lopetustagia </HOST>):

<Context path="/tutor" docBase="tutor" debug="0" reloadable="true" />

Tässä path=”/tutor” tarkoittaa sitä, että kaikki kutsut, joissa palvelimen URL-osoitteen perään on laitettu teksti /tutor ohjataan kyseiseen WEBAPPiin.

DocBase attribuuttilla määrätään hakemisto jossa sovellus on. Nyt siis hakemisto olisi TOMCAT_HOME\webapps\tutor .

ServletContextin lisäyksen ja poiston saa tehtyä myös Tomcatin administrator[6] ohjelmalla.

Itseasiassa Tomcat luo ServletContextin automaattisesti käynnistyessään, ellei sitä ole ilmoitettu, mutta ei lisää edellä mainittua elementtiä server.xml tiedostoon. Eli voit käyttää ServletContext-oliota sovelluksessasi ilman sen ilmoittamista

 



[1] Tarkemmin kerrottu kappaleessa ”WAR ja web sovelluksen käsittely”.

[2] Ks. http://sinuhe.jypoly.fi/~pkosonen/webapp/

[3] Windowsin käyttäjät erityishuomio!

[4] Ks. http://java.sun.com/docs/books/tutorial/jar/

[5] Dokumentin rakenne vastaa määritettyä DTD:tä (Document Type Definition), ks, http://java.sun.com/dtd/web-app_2_3.dtd

[6] Ks. http://localhost/admin/

 
edellinen
seuraava