Preskočiť na hlavný obsah

Ako na Apache Tomcat

Včera som sa rozhodol napísať si svoj prvý servrlet a prvú otázku ktorú som si položil bola ktorý webový aplikačný server si mám zvoliť Apache Tomcat alebo GlassFish. Keďže môj otec už dlhšiu dobu používa GlassFish tak som sa preň rozhodol aj ja. Netušil som však, že ma čakajú problémy ktoré ma donútia zmeniť moju voľbu na Tomcat. Teraz ukážem 2 spôsoby ako Apache Tomcat nainštalovať na systéme Fedora, RHEL alebo CentOS s tým, že by to malo fungovať aj pod inými distribúciami.

1. Apache Tomcat nezávislý od Eclipse

Spustíme si terminál ako používateľ root.

A - Inštalácia JDK

Poslednú verziu JDK je možné stiahnuť tu: http://www.oracle.com/technetwork/java/javase/downloads/index.html Ako prvé vytvoríme nový priečinok /usr/java a presunieme sa doň.
root@linux ~ $ mkdir /usr/java
root@linux ~ $ cd /usr/java
root@linux java $
Do novo vytvoreného priečinka stiahneme JDK a rozbalíme.
root@linux java $ tar -xzf jdk-7u51-linux-x64.tar.gz
Toto nám vytvorilo priečinok /usr/java/jdk1.7.0_51 ktorý bude našim JAVA_HOME. Teraz môžeme nastaviť JAVA_HOME pre všetkých používateľov jednoduchým pridaním serie príkazov do súboru /etc/profile.
JAVA_HOME=/usr/java/jdk1.7.0_51
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
Po tomto pridaní by sme sa mali odhlásiť a znova prihlásiť a skontrolovať či JAVA_HOME pracuje správne.
root@linux ~ $ echo $JAVA_HOME
/usr/java/jdk1.7.0_51

B - Stiahnutie a rozbalenie Tomcatu

Tomcat budeme inštalovať do priečinku /usr/share a tak sa doň presunieme a stiahneme si Tomcat (v mojom prípade apache-tomcat-7.0.52.tar.gz).
root@linux ~ $ cd /usr/share
root@linux share $ wget http://tux.rainside.sk/apache/tomcat/tomcat-7/v7.0.52/bin/apache-tomcat-7.0.52.tar.gz
Pre overenie správnosti stiahnutia môžeme použiť md5sum ktorý najdeme ja na stránkach Tomcatu.
root@linux share $ md5sum apache-tomcat-7.0.52.tar.gz
3d780939cc4fce1661e7411bbd640c09  apache-tomcat-7.0.52.tar.gz
Teraz archív rozbalíme a mal by nám vzniknúť priečinok /usr/share/apache-tomcat-7.0.52.
root@linux share $ tar -xzf apache-tomcat-7.0.52.tar.gz
root@linux share $ ls -l | grep apache
drwxr-xr-x 9 root root 4096 feb 23 12:24 apache-tomcat-7.0.52

C - Nastavenie Tomcatu aby bežal ako servis

Teraz vytvoríme skript tak aby bolo možné Tomcat spúšťať/vypínať/reštartovať ako servis a aby sa nám spustil pri boote. Presunieme sa do priečinku /etc/init.d a vytvoríme skript ktorý sa bude volať 'tomcat'.
root@linux ~ $ cd /etc/init.d
root@linux init.d $ vim tomcat
Tu je telo nášho skriptu:
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.7.0_51
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.52

case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;;
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;
esac
exit 0
Je potrebné nastaviť súboru správne práva.
root@linux init.d $ chmod 755 tomcat
Teraz použijeme chkconfig utilitu na nastavenie automatického spúšťania Tomcatu pri boote.
root@linux init.d $ chkconfig --add tomcat
root@linux init.d $ chkconfig --level 234 tomcat on
root@linux init.d $ chkconfig --list tomcat
tomcat          0:off   1:off   2:on    3:on    4:on    5:off   6:off
Ešte by sme mali skontrolovať Catalina.out log či sa nevyskytli nejaké chyby.
root@linux ~ $ more /usr/share/apache-tomcat-7.0.29/logs/catalina.out

D - Púšťanie Tomcatu ako neprivilegovaný užívateľ (odporúčam)

Na to či púšťať Tomcat ako neprivilegovaný užívateľ nech si odpovie každý sám ale podľa mňa je to lepšie a tu je sekvencia príkazov ako to zabezpečiť. Ako prvé si musíme vytvoriť užívateľskú skupinu.
root@linux ~ $ groupadd tomcat
Vytvoríme neprivilegovaného používateľa a určíme mu domovský adresár v koreni Tomcatu.
root@linux ~ $ useradd -g tomcat -d /usr/share/apache-tomcat-7.0.52/tomcat tomcat
Koreňový adresár Tomcatu sme vytvárali ako root tak je treba zmeniť skupinu aj vlastníka tohto adresára.
root@linux ~ $ chown -Rf tomcat.tomcat /usr/share/apache-tomcat-7.0.52/
A nakoniec takto upravíme spúšťací skript ktorý sme pred nedávnom vytvorili.
#!/bin/bash
# description: Tomcat Start Stop Restart
# processname: tomcat
# chkconfig: 234 20 80
JAVA_HOME=/usr/java/jdk1.7.0_51
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/usr/share/apache-tomcat-7.0.52/bin

case $1 in
start)
/bin/su tomcat $CATALINA_HOME/startup.sh
;;
stop)
/bin/su tomcat $CATALINA_HOME/shutdown.sh
;;
restart)
/bin/su tomcat $CATALINA_HOME/shutdown.sh
/bin/su tomcat $CATALINA_HOME/startup.sh
;;
esac
exit 0

2. Apache Tomcat s použitím Eclipse

S použitím Eclipse je tento úkon oveľa jednoduchší a má len pár jednoduchých krokov.
  1. Stiahneme si Eclipse s oficiálnej stránky http://eclipse.org/downloads/ alebo nainštalujeme pomocou inštalátora. Myslím, že tu je to pekne popísané.
  2. Ak máme Eclipse budeme potrebovať plugin ktorý sa volá Web Tools Platform. Tento plugin sa dá veľmi jednoducho nainštalovať pomocou Eclipse. Otvoríme Eclipse > Help > Install New Software... a do poľa kde si volíme zdroje softvéru zadáme adresu http://download.eclipse.org/webtools/updates/ asi nejak takto alebo použijeme YUM.
    root@linux ~ $ yum -y install eclipse-wtp-*
    
  3. Po reštartovaní Eclipse necháme vytvoriť webový projekt. Či zvolíme statický alebo dynamický by malo byť jedno. Pred akýmkoľvek nastavovaním projektu musíme zvoliť resp. vytvoriť aplikačný server. Klik New Runtime... a zvolíme z ponuky serverov pričom nezabudnite označiť voľbu Create a new local server po kliknutí na tlačítko Next > už len zvolíme kam má byť server nainštalovaný a klikneme na Download and Install..., Eclipse bude chvíľku pracovať a to je všetko. Už len vyplníme údaje o novom projekte a môžeme pracovať.

Vzorový kód servrletu - Hello World!

A aby ste nemuseli študovať nejaké náročné príklady ponúkam jeden klasický Hello World!.
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		PrintWriter out = response.getWriter();
		out.println("HelloWorld!");
	}
	
	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		doGet(request, response);
	}

}

Komentáre

Obľúbené príspevky z tohto blogu

Java - Súčet Listu s objektami BigDecimal

Pri používaní typu BigDecimal som narazil na zaujímavú úlohu a to sčítanie všetkých hodnôt v Liste. Majmä nasledovne definovaný list: List < BigDecimal > listOfBigDecimals = new LinkedList (); 1. spôsob je klasicke preiterovanie celého listu: BigDecimal sum = BigDecimal . ZERO ; for ( BigDecimal number : listOfBigDecimals ) { sum = sum . add ( number ); } 2. spôsobom je využitie stream.reduce() : BigDecimal sum = listOfBigDecimals . stream () . reduce ( BigDecimal . ZERO , BigDecimal :: add ); BONUS: spôsob s použitím reduce() v Kotline : val sum : BigDecimal = listOfBigDecimal . reduce { a , n -> a . add ( n ) }

Word z HTML v Jave

Tento krátky článok ukazuje ako pomocou knižnice docx4j vytvoriť dokument typu docx (Word). Potrebné knižnice môžeme nájsť na webe Docx4Java.org alebo v centrálnom repozitári mavenu (tuto cestu som si zvolil aj ja). Maven dependency: <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j</artifactId> <version>6.0.1</version> <type>jar</type> </dependency> <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j-ImportXHTML</artifactId> <version>6.0.1</version> </dependency> Vzorové použitie Vytvorenie docx dokumentu s jednou tabuľkou: package net.adamjak.tomas.htmltodocx; import java.io.File; import javax.xml.bind.JAXBException; import org.docx4j.convert.in.xhtml.XHTMLImporterImpl; import org.docx4j.openpackaging.exceptions.Docx4JException; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.ope

Ako previesť .mp3 súbor do .wav v Linuxe

Počas Vianočných sviatkov som skúmal ako previesť pesničky ktoré mám v počítači vo formáte MP3 do formátu audio CD ktorý by bez problémov načítala aj moja postaršia veža. Samozrejme našiel som veľa spôsobov avšak asi najjednoduchším bol veľmi jednoduchý shell skript. Inštalácia je veľmi jednoduchá: # Ubuntu sudo apt-get install mpg123 # Fedora yum install mpg123 Používať tento shell skript sa dá dvoma spôsobmi. Buď budete prevádzať každý MP3 súbor samostatne pomocou tohto príkazu: mpg123 -w vystup.wav vstup.mp3 Alebo využijete jednoduchú funkciu ktorú vložíte do súboru .bashrc v vašom koreňovom adresári. mp3towav(){      [[ $# -eq 0 ]] && { echo "mp3wav mp3file"; exit 1; }      for i in "$@"      do           # create .wav file name           local out="${i%/*}.wav"           [[ -f "$i" ]] && { echo -n "Processing ${i}..."; mpg123 -w           "${out}" "$i" &>/dev/null && echo "don