Servlet & JSP – 04 – Apache Tomcat

Merhaba Arkadaslar,
Bu yazimda  aklimiza gelebilecek temel sorulara yanit arayacagiz ve gerekli pratik bilgileri gorecegiz.

Bir onceki yazida Apache Tomcat kurulumunu gerceklestirdik ve ilk Servlet ornegimizi yazdik. Deployment Descriptor yani web.xml dosyamizi inceledik.

Neden Servlet Container olarak Apache Tomcat kullaniyoruz ?

Bunun nedeni calistigim tum kaynaklarda Apache Tomcat kullaniliyordu. Isteki projelerde de Apache Tomcat kullaniliyor. Apache Tomcat populerligi en fazla olan Servlet Containerdir diyebiliriz. Dolayisiyla bu yazilarim boyunca Apache Tomcat kullanmayi dusunuyorum. Baska bolumlerde farkli Servlet Containerlari da kullanabiliriz.

Apache Tomcat vs Glassfish

Apache Tomcat, Servlet Container‘dir baska bir deyisle Web Containerdir. Glassfish ise Application Server‘dir. Application Server’lar hem Servlet Container’a hem de EJB Container’a ve ek ozelliklere sahiptir. Servlet ve JSP icin Apache Tomcat yeterli olacaktir.
Glassfish Application Server , JSF+EJB projelerine uygun olacaktir. Apache Tomcat uzerinde Spring MVC projeleri de rahatlikla calisacaktir.

application server

Eclipse Servers View Eklemek

Eger Servers sekmesi resimdeki gibi Eclipste mevcut degilse, Window — > Show View — > Other –> Servers yolunu kullanarak Eclipse’e ekleyebiliriz.

servers view

Apache Tomcat’in Kullandigi Portlari Degistirmek

Apache Tomcat 8080 portunu kullanmaktadir. Bu portu Oracle’da kullanir ,farkli uygulamalarla port cakismasi olmamasi icin Apache Tomcat’in kullandigi bu portu degistirebiliriz. Bunun icin 2 yolumuz var ;

  • Yukaridaki resimdeki Servers sekmesinde Tomcat in uzerine cift tikladigimizda bir menu gelecektir, menudeki su alanda kullanilan portlari degistirebiliriz.

tomcat port

  • Ya da Eclipste Servers isminde bir proje olusacaktir. Burada server.xml dosyasi icerisinden de port degisikligi yapabiliriz.
   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  • Apache Tomcat klasoru altinda, conf klasoru icerisinde server.xml dosyasi ile port degisikligi yaparsaniz , Eclipse’teki Tomcat port degerleri bunu ezecektir/override.

Yeni portumuz 8040;

yeni port

Apache Tomcat & Deployment 

Apache Tomcat varsayilan olarak su dizini kullanir

{YOUR_ECLIPSE_WORKSPACE}\.metadata\.plugins\org.eclipse.wst.server.core\tmp{a-number}\wtpwebapps.

tomcat location

Ilgili dizine gittigimizde injavawetrust klasorumuzu gorebiliriz.
injavawetrust klasorumuz altinda WEB-INF ve META-INF klasorleri yer almaktadir. WEB-INF klasorumuzde classes ve lib klasorleri ile web.xml dosyalarimiz yer almaktadir.

web-inf

lib klasorumuz de suanda bir jar dosyamiz bulunmuyor.Projemize jar dosyalari ekledigimizde jar dosyalarimiz lib klasoru altinda yer alacaktir.

Projemizdeki Java siniflari classes klasorumuz altinda yer alacaktir.

helloservletworld

Apache Tomcat’in bu deployment dizinini ve Deploy path‘ini degistirebiliriz. Eclipse’te Servers sekmesine cift tikladigimizda Server Locations sekmesinde varsayilan olarak Use workspace metadata(does not modify Tomcat installation) secili olacaktir. Apache Tomcat klasorumuzun dizinini ya da dilersek baska bir dizin kullanabiliriz.

server locations

Server Locations sekmesi aktif olmadigi durumda ,Servers sekmesinde serverimiza sag tiklayip “Add and Remove” diyip deploy edilen projeleri “Remove all” ile cikartalim ve Finish diyelim ve tekrar deniyelim.

add and remove

Deploy path’in ismini webapps olarak degistirdim ve Server Locations sekmesinde Use Tomcat installation(takes control of Tomcat installation) secenegini kullandim.

webapps

Apache Tomcat & Publish

Apache Tomcat, varsayilan olarak projemizde yaptigimiz degisiklikleri algilayip publish/yayinlama islemi yapacaktir. Dilersek bunu Servers sekmesine cift tiklayip ilgili menude ,Publishing sekmesinden degistirebiliriz. Kendimiz diledigimiz vakitte elle/manuel olarak publish yapabiliriz. Ben bu ayari degistirmiyorum otomatik olarak publish yapmasina izin veriyorum.

publishing tomcat

Bununla birlikte bazi durumlarda kendimiz otomatik olarak publish yapmamiz gerekebiliyor. Eger Servers sekmesinde asagidaki gibi “Republish” durumu mevcutsa servera sag tiklayip “Publish” diyebiliriz.

publish

Bazi durumlarda Apache Tomcati calistirma sorunu yasayabiliriz. Bize ilgili portlarin kullanildigini hatasi verebilir. Bu gibi bir durumla karsilastigimizda gorev yoneticisinden/system monitor(ubuntu) “java” islemini durdurup tekrar deneyebiliriz.

Yazimi burada sonlandiriyorum.
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
OCE, Java EE 6, Web Component Developer

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *