Tomcat nedir? Orijinal Java sunucu uygulaması kapsayıcısı

Apache Tomcat, Java Servlet, JavaServer Pages (JSP) ve WebSockets API'leri gibi çeşitli temel Java kurumsal özelliklerini uygulayan uzun ömürlü, açık kaynaklı bir Java servlet kapsayıcısıdır.

Bir Apache Software Foundation projesi olan Tomcat, Java'nın kendisinden sadece dört yıl sonra, ilk olarak 1998'de piyasaya sürüldü. Tomcat, ilk Java Servlet API'si ve JSP spesifikasyonu için bir referans uygulaması olarak başladı. Artık bu teknolojilerden herhangi biri için referans uygulama olmasa da Tomcat, en yaygın kullanılan Java sunucusu olmaya devam ediyor ve iyi bir şekilde test edilmiş ve kanıtlanmış bir çekirdek motor ile iyi bir genişletilebilirliğe sahip.

Bu kısa girişte, birçok yazılım mağazasının Java web uygulamalarını çalıştırmak için neden Tomcat'i seçtiğini öğreneceksiniz. Tomcat ve nasıl kullanıldığına dair genel bir bakış ve bu yazı itibariyle en güncel sürüm için kurulum talimatları alacaksınız.

Tomcat ve Java Servlet API'si

Tomcat 9, Servlet 4.0 spesifikasyonunu destekler ve JDK 8 veya üstünü gerektirir. Tomcat 8.5, HTTP / 2 gibi birkaç yeni özelliği destekler, ancak Servlet 3 kabı olarak kalır.

Tomcat ne tür bir sunucu?

Java ekosistemi birkaç tür uygulama sunucusunu desteklemektedir, bu yüzden onları belirsizleştirelim ve Tomcat'in nereye sığdığını görelim:

  • Bir sunucu uygulaması kap Java sunucu barındıran için öncelikle kullanılan Java Servlet tarifnamenin bir uygulamasıdır.
  • Bir web sunucusu Apache gibi yerel sistemden dosyalarını sunmak için tasarlanmış bir sunucudur.
  • Bir Java kurumsal uygulama sunucusu , Java EE (şimdi Jakarta EE) spesifikasyonunun tam gelişmiş bir uygulamasıdır.

Tomcat, özünde bir sunucu uygulaması ve JSP kapsayıcısıdır. Bir Java sunucu uygulaması, kodu ve iş mantığını kapsüller ve isteklerin ve yanıtların bir Java sunucusunda nasıl ele alınması gerektiğini tanımlar. JSP, sunucu tarafı görünüm oluşturma teknolojisidir. Geliştirici olarak, sunucu uygulamasını veya JSP sayfasını yazarsınız, ardından Tomcat'in yönlendirmeyi yapmasına izin verirsiniz.

Tomcat ayrıca bir web sunucusu olan Coyote motorunu da içerir. Coyote sayesinde Tomcat'i, Java Persistence API (JPA) dahil olmak üzere çeşitli Java kurumsal özelliklerini ve yeteneklerini içerecek şekilde genişletmek mümkündür. Tomcat ayrıca daha fazla kurumsal özellik içeren TomEE adlı genişletilmiş bir sürüme sahiptir. Bu makalenin ilerleyen bölümlerinde kısaca TomEE'yi tanıtacağım.

Tomcat'i servletleri ve JSP'leri barındırmak için kullanmaya başlayalım.

Tomcat'i indirin ve yükleyin

Yazılım dünyasının eski bir geçmişi olan bir dizi Tomcat sürümü mevcuttur. Sürüm farklılıkları hakkındaki bilgiler Tomcat ana sayfasında mevcuttur. Genellikle en son kararlı sürümü seçebilirsiniz.

Amacımız için, Tomcat'in şu anda Tomcat 9 olan en son sürümünü indirin. Tomcat'i arşiv ( .zipveya tar.gz) veya yüklü bir hizmet olarak indirme seçeneğiniz vardır . En iyi seçim size kalmıştır - elbette Windows üzerinde çalışmıyorsanız, bu durumda arşive gideceksiniz. Bu makale için arşivi kullanacağız.

Tomcat için Windows kurulumu

Windows çalıştırıyorsanız ve yükleyiciyi kullanmak istiyorsanız, sadece .exe dosyasını indirin ve çalıştırın. Tomcat, kendisini makul varsayılan değerlere sahip bir hizmet olarak kuracaktır. Daha sonra kurulumun nerede olduğu konusunda sizi bilgilendirecek ve orada arşivi açmışsınız gibi devam edebilirsiniz.

Adım 1. Komut satırı kurulumu

Komut satırına gidin ve gunzip apache-tomcat-9.0.19.tar.gzardından şunu yazın tar -xf apache-tomcat-9.0.19.tar. Bu, aşağıdaki dizinleri oluşturur:

  • / bin , Tomcat'i çalıştırmak için komut dosyalarını içerir.
  • / webapps , uygulamalarınızı dağıtacağınız konumdur.
  • / logs , Tomcat'in günlüklerini çıkardığı yerdir. Tomcat'in günlüklerinin /logs/catalina.outvarsayılan olarak girildiğini unutmayın. Bu dosyayı, uygulamaya özel günlük dosyalarıyla bağlantılı olarak sorunları ayıklamak için kullanabilirsiniz.
  • / lib , Tomcat'in JAR'ları aradığı yerdir. Bu, JPA gibi Tomcat'e dahil olmayan ek paketleri depolayacağınız yerdir.
  • / conf , Tomcat için kullanıcı ve rol eklemek gibi şeyler yapabileceğiniz Tomcat için yapılandırma XML'sidir.

Adım 2. Tomcat'i başlatın

Tomcat'i bir hizmet olarak kurduysanız, zaten çalışıyor. Aksi takdirde, devam edin ve ./catalina.sh startkomut satırına girerek başlatın . ( ./catalina.shKullanılabilir tüm komutları görmek için bağımsız değişken olmadan yazın). Şimdi, bir tarayıcıda Tomcat'in karşılama ekranına göz atabilmelisiniz.

Matthew Tyson

Tomcat'te uygulamaları dağıtma

Tomcat'in webappsdizini, bir uygulamayı konuşlandırdığınız yerdir. .warOraya bir dosya bırakabilirsiniz ve Tomcat onu çalıştıracaktır. Bir WAR dosyası, bir web uygulaması kaynağı için standart bir pakettir: bazı ek dosyaların bulunduğu bir JAR dosyası, kapsayıcıya (bu durumda Tomcat) nasıl çalıştırılacağını söyler.

Standart paketlemenin yanı sıra, içeriği Tomcat'te dağıtmanın üç ek yolu vardır.

Patlatılmış dağıtım

"Patlatılmış" bir web uygulaması, bir WAR dosyasına sıkıştırılmamış bir uygulamadır, yani yine de dizinlerde ve dosyalarda düzenlenmiş tüm öğeleri içerir. Paketinden çıkardığınız Tomcat arşivi, /webapps/examplesdizinde bulacağınız bu şekilde dağıtılan birkaç örnekle birlikte gönderilmiştir . Patlatılmış bir dağıtımın avantajı, oradaki dosyalara sıkıştırma konusunda endişelenmeden bakabilmenizdir.

Adresine giderseniz //localhost:8080/examples/, bir bağlantı listesi bulacaksınız. Bu sayfa Tomcat tarafından /webapps/examples/index.htmldosyadan oluşturulmuştur. Tomcat, Tomcat'in Coyote motorunun bir web sunucusu olarak işlev gören bir örneği olan dosya sisteminden bir HTML dosyası sunuyor.

Sunulan örnekleri keşfetmekte özgürsünüz - bunlar Tomcat'in servletler, JSP'ler ve WebSocket'ler sunma yeteneklerine dair iyi bir genel bakış sağlar.

Tomcat ayrıca varsayılan olarak /manageryolun altında bulunan bir yönetim uygulaması içerir . Diğer şeylerin yanı sıra bu uygulama, uygulamaları bir web konsolundan başlatmanıza, durdurmanıza ve yeniden konuşlandırmanıza olanak tanır.

Statik içerik sunmak

Dosyaları dosya sisteminden sunmak veya Tomcat'ten Apache gibi başka bir HTTP sunucusuna iletmek mümkündür. Diğer bir yaygın kurulum, Apache veya Nginx gibi bir dosya sunucusunu Tomcat'in önüne koymak ve ardından API isteklerinizi Tomcat'e iletmektir. Bu durumlarda, mod_JK kitaplığı Tomcat ve Apache'yi (hatta IIS gibi başka bir web sunucusunu) iletişim kuracak şekilde yapılandırmak için kullanılır.

Tomcat, temel olarak statik içerik sunmada olmak üzere gelişmiş performans için Windows ve Linux için yerel sarmalayıcılar da sunmaktadır. Bu, Tomcat APR olarak bilinir ve daha fazla bilgiye buradan ulaşabilirsiniz. Bunlar tipik kullanım durumları için gerekli değildir, ancak bilinmesi iyidir.

Gömülü Tomcat

Jetty, uzun bir süre, katıştırılmış sunucu olarak çalışabilen tek sunucuydu. Bu değişti ve artık Tomcat gömülü olarak da çalışabilir. Gömülü bir sunucu kullanmanın ana fikri, uygulama dosyalarını içeren sunucu yerine, şimdiye kadar gördüğünüz gibi, ana sınıfa (yani, bağımsız bir Java uygulaması) sahip bir uygulamaya sahip olmanızdır. kod tabanının içinde. Genel olarak, bu daha basit ve taşınabilir bir geliştirme modeli sunar ve hızla norm haline gelmiştir. Örneğin Spring Boot, geliştirme modunda çalışan yerleşik bir Tomcat örneğini kullanır.

Gömülü bir sunucuyu çalıştırmak, hem uygulama hem de sunucu dağıtımıyla uğraşmak yerine artık yalnızca tek bir bileşenle (uygulama) uğraştığınız için operasyonlar açısından net bir basitlik sağlayabilir. Öte yandan, Tomcat'in bağımsız bir ana bilgisayar olarak çalıştığı kurulum hala çok yaygın.

Mee

Bu kitaplıkları Tomcat'in kendisine veya uygulama bağımlılıklarınıza ekleyerek Tomcat ile standart Java EE (veya Jakarta EE) yeteneklerinden daha fazlasını kullanmak mümkündür. Diğer bir seçenek de TomEE sunucusudur. TomEE, popüler JPA ve CDI (Contexts and Dependency Injection) API'leri dahil olmak üzere ek Java kurumsal desteğine sahip aynı Tomcat motorudur. TomEE'nin özellikleri Java EE web profiline dayalıdır, bu nedenle size Tomcat'ten daha fazlasını sunar ancak WildFly veya Glassfish gibi tam gelişmiş bir Java EE uygulama sunucusu değildir.

Yüksek kullanılabilirlik ve kümeleme

Tomcat, yüksek kullanılabilirliği ve kümelemeyi destekler. Yüksek kullanılabilirlik, esasen sunucunun başka bir örneğine yük devretme ve hiçbir şey ters gitmemiş gibi oturumu yeniden oluşturma yeteneğidir . Kümeleme, yüksek hacimli trafiği işlemek için aynı sunucunun birden çok sürümünü oluşturma yeteneğidir.

Sonuç

Tomcat, değişime ayak uydurarak aktif olarak geliştirilmeye devam ediyor ve web uygulamalarını dağıtmak için sağlam ve güvenilir bir platform sunuyor. Hem popülerliği hem de birçok PaaS sistemi için varsayılan Java platformu olarak seçilmesi, devam eden başarısının kanıtıdır.

Bu hikaye, "Tomcat nedir? Orijinal Java servlet kapsayıcısı" ilk olarak JavaWorld tarafından yayınlandı.