Hlavní navigace

S Javou na webovém serveru

Lukáš Zapletal 10. 1. 2001

Jazyk Java se nám začal rozpínat i na webové a aplikační servery. Linux nezůstává pozadu, podpora Javy je v něm vynikající a to i na poli serverových součástí. Hlavním tahounem posledních měsíců je Tomcat, na platformě nezávislá implementace servletů a JSP stránek. V následujícím článku Tomcat nainstalujeme do nejpoužívanějšího webového serveru na světě - Apache.

Balík Tomcat 3.X obsahuje servlet engine, který vyhovuje API 2.2, JSP kompilátor Jasper kompatibilní s JSP 1.1 (čtyřka bude umět zbrusu nové specifikace 2.3 a 1.2), http démona a jiné pomocné utilitky včetně dokumentace. Tomcat může pracovat jak standalone (v tomto případě se používá interní http server), tak ve spolupráci se serverem Apache. V prvním kroku nakonfigurujeme Tomcat pro standalone režim, vše odzkoušíme a poté se vrhneme na konfiguraci Apache.

Rozchodit Tomcat v prvním režimu je snadné. Po rozbalení binární distribuce (dejme tomu do /usr/local/tomcat) nastavíme dvě systémové proměnné a to $TOMCAT_HOME a $JAVA_HOME.

První jmenovaná proměnná bude v našem příkladu obsahovat /usr/local/tomcat a druhá pak cestu k Javě. Odzkoušel jsem Tomcat s IBM Javou verze 1.1.8 a 1.3.0 a s Blackdown Javou 1.1.8, 1.2.2 a 1.3.0, ale Tomcat by měl chodit teoreticky na všem. Po nastavení těchto dvou proměnných můžeme Tomcat spustit a to příkazem bin/tomcat.sh run. Tomcat se nyní spustí na popředí a my můžeme na konzoli sledovat případné chybové hlášky.

Do prohlížeče nyní zadáme jméno stroje (či jeho adresu) a port (oddělený dvojtečkou). V přednastavené konfiguraci je to port 8080. Měli bychom spatřit testovací stránky Tomcatu s hromadou pěkně zpracovaných příkladů Servletů a JSP stránek. Na tomto místě bychom si mohli něco o Servletech říci. Shrnu to do jedné věty: servlet je něco na způsob CGI, ovšem napsaný v Javě. Výhodou je, že jsou přenositelné na jakýkoliv systém, bezpečné a mají obrovské zázemí Javy, do které Sun investoval miliony dolarů. Pomocí JSP (neboli Java Server Pages) můžete vpisovat Javovský kód přímo do HTML stránek (tak jako v ASP, PHP atd.), používat JavaBeansy a dělat všechno to, co normálně (samozřejmě nebudete používat třeba SWING – to by nemělo smysl). JSP kompilátor se postará o to, aby všechny JSP stránky byly „překompilovány“ do servletů a ty se pak spouští. Výhodou JSP je rychlost, protože po „kompilaci“ jsou vygenerované servlety svižné a jejich rychlost je srovnatelná s ASP či PHP.

Takže Tomcat v samostatném režimu funguje bezvadně a nyní přistoupíme ke konfiguraci Apache. Pokud chcete s Tomcatem jenom zkoušet, bude vám určitě standalone režim stačit, jakmile ale pojedou servlety/JSP v ostrém provozu, budou dotazy na statické stránky zbytečně zpomalovat celý systém. Proto je výhodná tato konfigurace – kromě toho můžete na webu použít i jiné skriptovací jazyky či CGI.

Nejprve si povíme, jak Tomcat vlastně s Apachem spolupracuje. Je to samostatná aplikace, která je spuštěná zároveň s Apachem. Komunikace probíhá přes TCP pomocí protokolu AJP (porty 8007 a 8009). Do Apache je nutno nainstalovat modul, který se k Tomcatovi bude připojovat a zajišťovat funkčnost. Moduly jsou k dispozici dva:

  • mod_jserv – je upraveným původním servletovým modulem moc_jserv
  • mod_jk – je zcela novým modulem napsaným na míru pro Tomcat, je rychlejší než mod_jserv díky AJP protokolu 1.3 a RMI, je menší a umožňuje použít https

Oba moduly se distribuují ve zdrojovém tvaru a najdete je ve zdrojácích celého Tomcata v adresáři src/native/apache/jServ resp. src/native/jk a src/native/apache1­.3 nebo src/native/apache2­.0 (podle toho jaký Apache používáte). Budeme se nyní zabývat modulem mod_jk.

Kompilace je díky APXS skriptu banální. Stačí přejít do adresáře src/native/apache1­.3 (src/native/a­pache2.0 pro zbrusu nový Apache) a spustit krátkou kompilaci:

apxs -o mod_jk.so -I../jk -I/usr/local/jdk/include \
-I/usr/local/jdk/include/linux -c *.c ../jk/*.c

Nezapomeňte zaměnit /usr/local/jdk za vámi používanou Javu! Vytvořený mod_jk.so nyní překopírujte k ostatním modulům. Posledním krokem je konfigurace Apache. Tomcat při startu vytvoří soubor mod_jk.conf-auto který stačí nainkludovat do httpd.conf (Include /usr/local/tom­cat/conf/mod_jk­.conf-auto). Pokud váš Apache nepoužívá pro moduly adresář libexec, tak na mod_jk.so udělejte odkaz, protože Tomcatu se nedá nijak sdělit, když máte moduly na jiné cestě. Vyhnete se tak ruční konfiguraci a pokud vytvoříte nový kontext, po restartu se automaticky doplní do konfigurace Apache.

Nyní stačí přejít do adresáře /examples na vašem www serveru a vyzkoušet, zda to všechno funguje. Pokud Apache „hází pětistovku“ neboli chybu Internal server error – 500 a vy zkoumáte proč tomu tak je, když v error_logu nic není, tak vězte, že tato chyba nastane, když nemáte Tomcat spuštěn. Mod_jk.so se totiž snaží připojit na port 8007 (8009 v AJP 1.3 protokolu), kde nic není.

A co dále? Příště si začneme hrát se Servlety a JSP stránkami a podíváme se na ty podivné kontexty. Slouží k bezpečnému nastavení a zprovoznění webové aplikace.

Našli jste v článku chybu?

14. 1. 2001 13:14

Jan B. Krejci (neregistrovaný)

Ahoj,

koukali jste taky na Jetty (appserver Jboss se nabizi k downloadu s obema)? Zkousel jsem merit vykon a Jetty se v defaultni konfiguraci zdal o fous pomalejsi, ale zato s mensimi vykyvy v reakcni dobe.

Ta koncepce J2EE .waru je uzasna, jakmile jsem ji objevil, uz nedelam nic jineho :-)

A jeste neco. Povazuji za naprosto skvelou vec Tag Libraries pro JSP (viz projekt Jakarta -- tam je par samplu).

-=jbk=-









12. 1. 2001 14:16

Jan Kotek (neregistrovaný)

Jeste by bylo zajimave zminit, ze Tomcat je tzv. referencni implementaci J2EE JSP/JavaServletu. To znamena, ze pokud Vam budou JSP stranky fungovat pod Tomcatem, budou fungovat i ve VSECH J2EE CERTIFIKOVANYCH (!) servrech. A na vsech jejich platformach.

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Levný tarif pro Brno nebude. Radní: je to kartel

Levný tarif pro Brno nebude. Radní: je to kartel

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Vitalia.cz: Spor o mortadelu: podle Lidlu falšovaná nebyla

Spor o mortadelu: podle Lidlu falšovaná nebyla

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: Mondelez stahuje rizikovou čokoládu Milka

Mondelez stahuje rizikovou čokoládu Milka

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo