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.
Eclipse Servers View Eklemek
Eger Servers sekmesi resimdeki gibi Eclipste mevcut degilse, Window — > Show View — > Other –> Servers yolunu kullanarak Eclipse’e ekleyebiliriz.
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.
- 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;
Apache Tomcat & Deployment
Apache Tomcat varsayilan olarak su dizini kullanir
{YOUR_ECLIPSE_WORKSPACE}\.metadata\.plugins\org.eclipse.wst.server.core\tmp{a-number}\wtpwebapps.
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.
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.
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 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.
Deploy path’in ismini webapps olarak degistirdim ve Server Locations sekmesinde Use Tomcat installation(takes control of Tomcat installation) secenegini kullandim.
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.
Bununla birlikte bazi durumlarda kendimiz otomatik olarak publish yapmamiz gerekebiliyor. Eger Servers sekmesinde asagidaki gibi “Republish” durumu mevcutsa servera sag tiklayip “Publish” diyebiliriz.
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.