tomcat etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
tomcat etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

16 Mart 2015 Pazartesi

Tomcat dokümanları

http://tomcat.apache.org/tomcat-7.0-doc/index.html
http://tomcat.apache.org/tomcat-7.0-doc/introduction.html



http://tomcat.apache.org/tomcat-8.0-doc/index.html

http://wiki.apache.org/tomcat/Specifications

Tomcat7 & JNDI resource configuration

http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html

Tomcat 7 anatomisi

Tomcat 7'yi yüklediğimiz klasörün (örneğin c:\tomcat) yapısını ve içeriğini inceleyelim.

tomcat klasöründe belli başlı klasör ve dosyalar bulunuyor.
1. \bin klasörü
2. \conf klasörü
3. \lib klasörü
4. \logs klasörü
5. \temp klasörü
6. \webapps klasörü
7. \work klasörü
8. LICENCE dosyası
9. NOTICE dosyası
10. RELEASE-NOTES dosyası
11. RUNNING.xml dosyası


Bunları sırayla analiz edelim.

1. \bin klasörü

Klasörün içeriğini "tür" cinsinden sıralayarak tek tek dosyaları inceleyelim.

a. java archive (.jar) dosyaları

bootstrap.jar:

commons-daemon.jar:

tomcat-juli.jar:


b. shell scriptleri (.sh)


Genellikle klasördeki batch dosyaları ile aynı ismi taşıyan shell scriptlerini inceleyelim.

catalina.sh

configtest.sh

daemon.sh

digest.sh

setclasspath.sh

shutdown.sh

startup.sh

tool-wrapper.sh

version.sh

c. uygulama (.exe) dosyaları


tomcat7.exe:
Burada tomcatin uygulama dosyası tomcat7.exe bulunuyor.
IDE içinde projeyi çalıştırdığımızda, aslında buradaki exe dosyası çalıştırılarak server başlatılıyor.

tomcat7w.exe :


d. DLL (.dll) / dinamik link kütüphaneleri



tcnative-1.dll:

e. batch (.bat) / toplu iş dosyaları


catalina.bat:

configtest.bat:

digest.bat:

service.bat:

setclasspath.bat:

shutdown.bat:

startup.bat:

tool-wrapper.bat:

version.bat:

f. tar dosyaları (.tar)




commons-daemon-native.tar:

tomcat-native.tar:

g. xml dosyaları (.xml)


catalina-tasks.xml:

<project name="catalina-tasks">
  <description>Catalina Ant Manager, JMX and JSPC Tasks</description>
  <!-- set catalina.home if it's not already set -->
  <dirname property="catalina.home.bin.dir" file="${ant.file.catalina-tasks}"/>
  <property name="catalina.home" value="${catalina.home.bin.dir}/.."/>
  <typedef resource="org/apache/catalina/ant/catalina.tasks">
    <classpath>
      <fileset file="${catalina.home}/bin/tomcat-juli.jar"/>
      <fileset file="${catalina.home}/lib/tomcat-api.jar"/>
      <fileset file="${catalina.home}/lib/tomcat-util.jar"/>
      <fileset file="${catalina.home}/lib/jasper.jar"/>
      <fileset file="${catalina.home}/lib/jasper-el.jar"/>
      <fileset file="${catalina.home}/lib/el-api.jar"/>
      <fileset file="${catalina.home}/lib/jsp-api.jar"/>
      <fileset file="${catalina.home}/lib/servlet-api.jar"/>
      <fileset file="${catalina.home}/lib/catalina-ant.jar"/>
      <fileset file="${catalina.home}/lib/tomcat-coyote.jar"/>
    </classpath>
  </typedef>
  <typedef resource="org/apache/catalina/ant/jmx/jmxaccessor.tasks">
    <classpath>
      <fileset file="${catalina.home}/lib/catalina-ant.jar"/>
    </classpath>
  </typedef>
</project>


2. \conf klasörü


a. \conf\Catalina\ klasörü


Bu klasörde şu an sadece \localhost klasörü bulunuyor.
\conf\Catalina\localhost\ klasörü içeriğine bakalım:

Customers.xml:
NetBeeans'te yaratılmış "Customers" adlı bir web application projesinin path'ını yani:
C:\Users\<adınız>\Documents\NetBeansProjects\Customers\build\web 
klasörünü web application'un path'ı olarak bildiriyor.

StoreProject.xml:
Aynı şekilde bir diğer web application projesinin path'ını bildiriyor.

b. policy dosyaları (.policy)


catalina.policy:

c. property dosyaları (.properties)


catalina.properties
logging.properties

d. xml dosyaları(.xml)


context.xml:

server.xml:

tomcat-users.xml:
Burada tomcat kullanıcıları ve rolleri belirtiliyor. Buradaki tanımlamaları doğru yapmak çok önemli.

web.xml:

3. \lib klasörü

Bu klasörde sadece kütüphaneler bulunuyor.
SQLite kullanılacaksa jdbc-jar dosyasını buraya atmak gerekiyor.

a. java archive (.jar) dosyaları


annotations-api.jar
catalina.jar
catalina-ant.jar
catalina-ha.jar
catalina-tribes.jar
ecj-4.4jar
el-api.jar
jasper.jar
jasper-el.jar
jsp-api.jar
servlet-api.jar
tomcat7-websocket.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
tomcat-jdbc.jar
tomcat-util.jar
websocket-api.jar

4. \logs klasörü

Burada server logları metin dosyaları olarak bulunuyor.

a. Log dosyaları (.log)

catalina-2015-03-10.log
...
host-manager.2015-03-10.log
...
localhost.2015-03-10.log
...
manager.2015-03-10.log
...

b. text dosyaları (.txt)


localhost_access_log.<tarih>.txt :

Server her gün için yeni bir dosya yaratmış.
Bu dosyalarda bütün sorgu kayıtlarını inceleyebiliyoruz.
Örneğin:
127.0.0.1 - - [10/Mar/2015:14:42:02 +0200] "GET /examples/servlets/ HTTP/1.1" 200 7139
Bu kayıtta tomcatin servlet example sayfasının istendiğini görebiliyoruz.


5. \temp klasörü


Geçici dosyaları burada bulabiliriz.

6. \webapps klasörü


a. \docs klasörü

b. \examples klasörü

c. \host-manager klasörü

d. \manager klasörü

e. \ROOT klasörü


7. \work klasörü


a. Catalina klasörü 


a.1. localhost klasörü

1. _ klasörü

2. Customers klasörü: Customers adlı projeye ait.

3. docs klasörü

4. examples klasörü

5. host-manager klasörü

6. manager klasörü

7. StoreProject klasörü: StoreProject adlı projeye ait.



8.Diğer dosyalar

a. LICENCE dosyası:
Lisans bilgileri var.

b. NOTICE dosyası:


c. RELEASE-NOTES dosyası:

d. RUNNING.xml dosyası:
Burada tomcatin çalıştırılması ile ilgili detaylı talimatlar var.
Birden fazla tomcat instance nasıl çalıştırılır? gibi sorulan cevapları burada mevcut. Okumakta fayda var.

14 Mart 2015 Cumartesi

tomcat 7 org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

Tomcat kullanıcısının karşılaşacabileceği bir hata.
Tomcat 8 versiyonunda bile JSTL library bulunmuyor.
Gözden kaçtığında JSTL olmadan projeyi derlemey çalıştığımızdan, bu hatayla karşılaşıyoruz.
Yapılacak tek şey JSTL libraryi projeye eklemekten ibaret.

Glassfish'te ise default olarak JSTL bulunduğundan bunlara gerek kalmıyor.

12 Mart 2015 Perşembe

Tomcat Web Application Manager

Apache Tomcat serverda http://localhost:8080/manager/html adresinden Web Applicaton Manager'a girebiliyoruz. Application Manager'da belli başlı bölümler bulunuyor. Bunları inceleyelim.

1. Message


OK yazıyorsa bir problem olmadığını gösterir.

Message: 
OK


2. Manager


Manager
List ApplicationsHTML Manager HelpManager HelpServer Status

List applications: web applicationları listele
HTML manager help : yardım için
Manager help : yardım için
Server status : server durumu öğren

Server status'e tıkladığımızda /status sayfası açılıyor.
Buradaki başlıkları inceleyelim.

OS : 
Physical memory: 32748.85 MB Available memory: 27929.93 MB Total page file: 37612.85 MB Free page file: 31523.42 MB Memory load: 14
Process kernel time: 2.75 s Process user time: 12.578 s

JVM:

Free memory: 449.33 MB Total memory: 491.00 MB Max memory: 7278.50 MB
Memory PoolTypeInitialTotalMaximumUsed
PS Eden SpaceHeap memory128.50 MB128.50 MB2687.00 MB9.36 MB (0%)
PS Old GenHeap memory341.50 MB341.50 MB5459.00 MB11.31 MB (0%)
PS Survivor SpaceHeap memory21.00 MB21.00 MB21.00 MB20.97 MB (99%)
Code CacheNon-heap memory2.43 MB12.12 MB240.00 MB11.98 MB (4%)
Compressed Class SpaceNon-heap memory0.00 MB2.37 MB1024.00 MB2.13 MB (0%)
MetaspaceNon-heap memory0.00 MB20.12 MB-0.00 MB19.34 MB
...

"http-apr-8080"

Max threads: 200 Current thread count: 10 Current thread busy: 1 Keeped alive sockets count: 2
Max processing time: 112 ms Processing time: 3.217 s Request count: 449 Error count: 184 Bytes received: 0.00 MB Bytes sent: 0.55 MB
StageTimeB SentB RecvClient (Forwarded)Client (Actual)VHostRequest
S1 ms0 KB0 KB127.0.0.1127.0.0.1localhostGET /manager/status HTTP/1.1
R??????
P: Parse and prepare request S: Service F: Finishing R: Ready K: Keepalive

...

3. Applications


Applications
PathVersionDisplay NameRunningSessionsCommands
/None specifiedWelcome to Tomcattrue0 Start 
  with idle ≥  minutes 
/MyProjectNone specifiedtrue1 Start 
  with idle ≥  minutes 
/docsNone specifiedTomcat Documentationtrue0 Start 
  with idle ≥  minutes 
/examplesNone specifiedServlet and JSP Examplestrue0 Start 
  with idle ≥  minutes 
/host-managerNone specifiedTomcat Host Manager Applicationtrue0 Start 
  with idle ≥  minutes 
/managerNone specifiedTomcat Manager Applicationtrue1 Start   Stop   Reload   Undeploy 
  with idle ≥  minutes 

Burada serverda bulunan applicationların listesini görebiliyoruz.

path: url path
version: varsa versiyon bilgisi
display name: varsa görünen ismi
running: şu anda çalışıyor mu (true = çalışıyor)
sessions: şu anda kaç session var
commands: çeşitli komutlar.
 - Start: çalıştır
 - Stop: durdur
 - Reload: yeniden yükle
 - Undeploy: kaldır
 - Expire sessions with idle <= x minutes: Session x dakikayı geçtiği anda expire etsin.

Application listesine bakalım:

/ : root taki default index.jsp sayfası bulunuyor.
/MyProject : MyProject adlı örnek bir web application bulunuyor.
/docs : tomcat dokümanları mevcut
/examples : tomcat örnek dosyaları bulunuyor
/host-manager :
/manager : tomcat web application manager, yani şu an incelediğimiz uygulama.

4. Deploy


Deploy
Deploy directory or WAR file located on server
Context Path (required):
XML Configuration file URL:
WAR or Directory URL:
WAR file to deploy
Select WAR file to upload

Deploy directory  or war file located on server:

Burada serverda bulunan bir war dosyası ya da uygulama klasörünün adresini belirterek deploy edebiliyoruz.

Context path kısmına url yi yazıyoruz.
xml configuration file url kısmına xml konfigürasyon dosyasının adresini veriyoruz.
war or directory url kısmına war dosyasını ya da proje klasörünün adresini veriyoruz.
Deploy'a tıkladığımızda uygulama deploy ediliyor, yani servera yüklenmiş oluyor.

war file to deploy:

Burada da servera bir war dosyası yükleyerek web application'ı direk deploy edebiliyoruz.

5.Diagnostics



Diagnostics
Check to see if a web application has caused a memory leak on stop, reload or undeploy
This diagnostic check will trigger a full garbage collection. Use it with extreme caution on production systems.

Burada web application durdurulduğunda, yeniden yüklendiğinde ya da undeploy edildiğinde memory leak oluşturup oluşturmadığını kontrol edebiliyoruz.
Find leaks butonuna tıkladığımızda garbage collection tetikleniyor.
Bir de uyarı var: eğer production serverda iseniz ne yaptığınıza çok dikkat edin deniyor.


6. Server information



Server Information
Tomcat VersionJVM VersionJVM VendorOS NameOS VersionOS ArchitectureHostnameIP Address
Apache Tomcat/7.0.591.8.0_31-b13Oracle CorporationWindows 8.16.3amd64server1192.168.56.1

Tomcat Version: Tomcat'in versiyon bilgisi.
JVM version: JVM versiyonu.
JVM vendor: JVM sahibi firma bilgisi.
OS name: İşletim sistemi
OS version: İşletim sistemi versiyonu
OS architecture: İşletim sistemi mimarisi (32 ya da 64 bit)
Hostname: makinenin ağdaki host adı
IP address: makinenin ağdaki ip adresi

11 Mart 2015 Çarşamba

Netbeans ve Apache Tomcat

Netbeans 8.0.2'de Apache Tomcat 7 ilk kez kullanıldığında bazı hatalar alınabiliyor.

Öncelikle username, password ve role eklemelerini doğru yapmak gerek. Tomcat 7'den itibaren şu rolleri eklemek gerekiyormuş:
 <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="manager-jmx"/>
  <role rolename="manager-status"/>
Kullandığımız kullanıcı rolünde mutlakla manager-script olması gerekiyor.
bir de <tomcat users> tagını açık unutmak da sıkıntı yaratabilir.

Bu düzeltmeyi yaptıktan sonra Tomcati çalıştırınca bu defa da "12.0.0.1 geçersiz komut.." gibi bir hata veriyor. Bunun sebebi başka bir bugfix in neden olduğu başka bir bug. Bunu düzeltmek için catalina.bat dosyasında 179 ve 184. satırlardaki
set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%" 
şeklindeki ifadeyi tırnak işaretini kaldırarak
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG% 
olarak kaydetmek gerekiyor.

Buradan sonra Netbeans ile Tomcat sorunsuz çalışıyor.

10 Mart 2015 Salı

Apache Tomcat Server

Tomcat kurulumu


c:\tomcat içine tomcat'i atıyoruz.

Tomcat server çalıştırma ve durdurma


\bin\startup ve \bin\shutdown ile server'ı başlatıp durdurabiliyoruz.

http://www.serefakyuz.com/2011/06/tomcat-nedir-nasl-kurulur.html

Tomcat dokümanları


http://localhost:8080/docs/

Tomcat kullanıcı bilgileri


C:\tomcat\conf\tomcat-users.xml

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
    <user password="password" roles="manager-script,admin" username="administrator"/>
    <user password="testpass" roles="manager-script,admin" username="testuser"/>
</tomcat-users>

Bu xml dosyası içinden kullanıcılara müdahale edebiliyoruz.

Tomcat'te çalıştırmak için servlet örnekleri


http://localhost:8080/examples/servlets/index.html