IT Serwer aplikacyjny

Tomcat

Znany też jako:Apache TomcatJakarta Tomcat

Definicja #

Apache Tomcat to open-source'owy kontener Servlet i serwer webowy dla języka Java, rozwijany przez Apache Software Foundation od 1999 roku. Implementuje standardy Jakarta EE (dawniej Java EE):

  • Jakarta Servlet — API do obsługi żądań HTTP w Javie; klasy dziedziczące po HttpServlet
  • Jakarta Server Pages (JSP) — szablony HTML z wbudowanym kodem Java; kompilowane do Servletów
  • WebSocket — obsługa połączeń WebSocket (od Tomcat 7)
  • Jakarta Expression Language (EL)

Architektura Tomcat:

  • Catalina — kontener Servlet; rdzeń Tomcata odpowiedzialny za obsługę żądań
  • Coyote — konektor HTTP/HTTPS; obsługuje żądania na poziomie protokołu (HTTP/1.1, HTTP/2, AJP)
  • Jasper — silnik JSP; kompiluje strony JSP do klas Java (Servlet)
  • Cluster — mechanizm replikacji sesji dla środowisk wielowęzłowych

Tomcat vs pełne serwery EE (JBoss/WildFly, WebLogic, WebSphere):

  • Tomcat implementuje tylko podzbiór Jakarta EE (Servlet/JSP/WebSocket) — jest lżejszy i prostszy
  • JBoss/WildFly implementuje pełne Jakarta EE: EJB, JPA, CDI, JMS, JAX-RS — cięższy, ale kompletny
  • Spring Boot domyślnie wbudowuje Tomcata jako embedded server — aplikacje uruchamiane jako JAR bez osobnej instalacji serwera

Tomcat jest najczęściej stosowanym serwerem aplikacyjnym Java — używany bezpośrednio lub jako embedded server w Spring Boot.

Zastosowania #

  • Hosting aplikacji webowych Java — wdrożenie plików WAR z aplikacjami Spring MVC, JSF, Struts na serwerze Tomcat
  • Embedded server w Spring Boot — Tomcat wbudowany w JAR aplikacji Spring Boot; uruchomienie przez java -jar app.jar bez osobnej instalacji
  • Środowiska CI/CD — lekki serwer do automatycznego deploymentu i testów integracyjnych
  • Reverse proxy za Nginx/Apache — Tomcat jako backend; Nginx obsługuje SSL i pliki statyczne, Tomcat dynamikę
  • Migracja z legacy systemów Java — utrzymanie aplikacji JSP/Servlet napisanych dla starszych wersji Tomcata

Ścieżka nauki #

Tomcat jest kluczowym elementem wiedzy każdego Java developera pracującego z backendem webowym.

Zacznij od:

  • Instalacja Tomcat: pobranie z tomcat.apache.org, struktura katalogów (webapps/, conf/server.xml, logs/)
  • Wdrożenie pierwszej aplikacji: umieszczenie pliku WAR w webapps/ lub przez Tomcat Manager
  • Konfiguracja: server.xml (porty, connectors), context.xml (datasources), web.xml
  • Tomcat Manager — interfejs webowy do zarządzania wdrożeniami

Następnie pogłębiaj:

  • Spring Boot z embedded Tomcat — jak działa wbudowany serwer, konfiguracja przez application.properties
  • Konfiguracja HTTPS: certyfikat SSL w Tomcat lub terminacja SSL na Nginx/Apache jako reverse proxy
  • Tuning wydajności: ustawienia puli wątków (maxThreads), connection pool (DBCP/HikariCP)
  • Klastry Tomcat: replikacja sesji, load balancing przez mod_jk lub mod_proxy_balancer

FAQ #

Czym różni się Tomcat od JBoss/WildFly?
Tomcat implementuje tylko podzbiór Jakarta EE: Servlet, JSP i WebSocket — jest lżejszy i prostszy. JBoss/WildFly implementuje pełne Jakarta EE: EJB, CDI, JPA, JMS, JAX-RS — kompletny serwer aplikacyjny. Spring Boot używa Tomcata jako domyślnego embedded servera. JBoss stosuje się przy pracy z pełnym stackiem Jakarta EE lub legacy systemami EJB.
Czy Spring Boot wymaga instalacji Tomcata?
Nie — Spring Boot domyślnie wbudowuje Tomcata w plik JAR aplikacji. Wystarczy uruchomić java -jar app.jar bez osobnej instalacji serwera. Można zmienić embedded server na Jetty lub Undertow przez konfigurację pom.xml/build.gradle. Wbudowany Tomcat obsługuje HTTP, HTTPS i WebSocket.
Jakie są aktualne wersje Tomcata i co wybierać?
Aktywnie rozwijane wersje to Tomcat 10.x (Jakarta EE 9+, nowe namespace jakarta.*) i Tomcat 11.x. Tomcat 9.x używa starszego namespace javax.* (Java EE) i jest szeroko stosowany z legacy Spring. Ważna zmiana: w Tomcat 10 paczki zmieniły namespace z javax.servlet na jakarta.servlet — migracja wymaga aktualizacji importów.
Jak wdrożyć aplikację na Tomcat?
Metody wdrożenia: 1) Skopiowanie pliku WAR do katalogu webapps/ — Tomcat automatycznie wykryje i wdroży. 2) Tomcat Manager (interfejs webowy /manager/html) — upload WAR przez przeglądarkę. 3) Maven Tomcat Plugin — wdrożenie przez mvn tomcat7:deploy. 4) Skrypty CI/CD (GitHub Actions, Jenkins) kopiujące WAR przez SSH lub API Managera.
Ostatnia aktualizacja:

Powiązane hasła

Technologie i biblioteki, które najczęściej pojawiają się razem z Tomcat w ogłoszeniach.

Cały słownik IT

Przeglądaj słownik IT alfabetycznie

Wybierz literę, aby zobaczyć wszystkie hasła zaczynające się od niej.