Ohjelmointi

Mikä on Tomcat? Alkuperäinen Java-servlet-säilö

Apache Tomcat on pitkäikäinen, avoimen lähdekoodin Java-servlet-säilö, joka toteuttaa useita Java-ydinteknisiä tietoja, nimittäin Java Servlet, JavaServer Pages (JSP) ja WebSockets API.

Apache Software Foundation -projekti, Tomcat, julkaistiin ensimmäisen kerran vuonna 1998, vain neljä vuotta Java-ohjelman jälkeen. Tomcat aloitti viitetoteutuksena ensimmäiselle Java Servlet -sovellusliittymälle ja JSP-spesifikaatioille. Vaikka Tomcat ei ole enää viitteellinen toteutus kummallekaan näistä tekniikoista, Tomcat on edelleen yleisimmin käytetty Java-palvelin.

Tässä lyhyessä johdannossa opit, miksi monet ohjelmistoliikkeet valitsevat Tomcatin Java-verkkosovellusten ajamiseksi. Saat yleiskatsauksen Tomcatista ja sen käytöstä sekä asennusohjeet uusimpaan versioon tämän kirjoituksen jälkeen.

Tomcat ja Java Servlet -sovellusliittymä

Tomcat 9 tukee Servlet 4.0 -ominaisuutta ja vaatii JDK 8: n tai uudemman. Tomcat 8.5 tukee useita uudempia ominaisuuksia, kuten HTTP / 2, mutta on edelleen Servlet 3 -säiliö.

Millainen palvelin Tomcat on?

Java-ekosysteemi tukee monenlaisia ​​sovelluspalvelimia, joten erotellaan ne ja katsotaan mihin Tomcat sopii:

  • A servlet-pakkaus on Java Servlet -spesifikaation toteutus, jota käytetään ensisijaisesti Java-servletien isännöimiseen.
  • A verkkopalvelin on palvelin, joka on suunniteltu palvelemaan tiedostoja paikallisesta järjestelmästä, kuten Apache.
  • A Java-yrityssovelluspalvelin on Java EE (nyt Jakarta EE) -määrityksen täysimittainen toteutus.

Sydämeltään Tomcat on servlet ja JSP-kontti. Java-servlet pienentää koodin ja liiketoimintalogiikan sekä määrittelee, miten pyyntöjä ja vastauksia tulisi käsitellä Java-palvelimessa. JSP on palvelinpuolen näkymän renderointitekniikka. Kehittäjänä kirjoitat servlet- tai JSP-sivun ja annat sitten Tomcatin hoitaa reitityksen.

Tomcat sisältää myös Coyote-moottorin, joka on verkkopalvelin. Coyoten ansiosta Tomcatia on mahdollista laajentaa sisällyttämällä siihen erilaisia ​​Java-yritysominaisuuksia ja -ominaisuuksia, mukaan lukien Java Persistence API (JPA). Tomcatilla on myös laajennettu versio, nimeltään TomEE, joka sisältää enemmän yrityksen ominaisuuksia. Esittelen lyhyesti TomEE: n myöhemmin tässä artikkelissa.

Aloitetaan tarkastelemalla Tomcatin käyttöä palvelinsovellusten ja JSP: n isännöimisessä.

Lataa ja asenna Tomcat

Koska ohjelmistomaailma on ollut muinainen, on saatavilla useita Tomcat-versioita. Tietoa versioeroista on Tomcatin kotisivulla. Voit yleensä valita vain viimeisimmän vakaan version.

Lataa tarkoituksellemme uusin Tomcat-versio, joka on tällä hetkellä Tomcat 9. Voit ladata Tomcatin arkistona (.postinumero tai tar.gz) tai asennettuna palveluna. Paras valinta on sinun tehtäväsi - ellet tietenkään käytä Windowsia, jolloin siirryt arkistoon. Käytämme tämän artikkelin arkistoa.

Windows-asennus Tomcatille

Jos käytössäsi on Windows ja haluat käyttää asennusohjelmaa, lataa .exe-tiedosto ja suorita se. Tomcat asentaa itsensä palveluksi kohtuullisilla oletusarvoilla. Sitten se ilmoittaa sinulle asennuksen sijainnin, ja voit edetä ikään kuin olisit purkanut arkiston siellä.

Vaihe 1. Komentorivin asennus

Siirry komentoriville ja kirjoita gunzip apache-tomcat-9.0.19.tar.gz jonka jälkeen tar -xf apache-tomcat-9.0.19.tar. Tämä luo seuraavat hakemistot:

  • / bin sisältää komentosarjat Tomcatin suorittamiseen.
  • / webapps on paikka, johon asennat sovelluksesi.
  • / lokit on paikka, josta Tomcat antaa lokinsa. Huomaa, että Tomcatin lokit menevät /logs/catalina.out oletuksena. Voit käyttää tätä tiedostoa ongelmien vianetsintään yhdessä sovelluskohtaisten lokitiedostojen kanssa.
  • / lib on paikka, josta Tomcat etsii JAReja. Täällä voit tallentaa muita paketteja, jotka eivät sisälly Tomcatiin, kuten JPA.
  • / conf on Tomcatin konfiguraatio-XML, jossa voit tehdä esimerkiksi käyttäjien ja roolien lisäämistä Tomcatille.

Vaihe 2. Käynnistä Tomcat

Jos asennit Tomcatin palveluna, se on jo käynnissä. Muussa tapauksessa mene eteenpäin ja käynnistä se kirjoittamalla ./catalina.sh alku komentorivillä. (Tyyppi ./catalina.sh ilman argumentteja nähdäksesi kaikki käytettävissä olevat komennot). Nyt sinun pitäisi pystyä selaamaan Tomcatin tervetulonäyttöön selaimessa.

Matthew Tyson

Sovellusten käyttöönotto Tomcatissa

Tomcatin verkkosovellukset hakemisto on paikka, johon asennat sovelluksen. Voit pudottaa a .sota tiedosto siellä ja Tomcat suorittaa sen. WAR-tiedosto on verkkosovellusresurssin vakiopakkaus: JAR-tiedosto, jossa on joitain lisätiedostoja, jotka kertovat säilölle (tässä tapauksessa Tomcatille) kuinka se suoritetaan.

Tavallisen pakkauksen lisäksi on kolme muuta tapaa sijoittaa sisältöä Tomcatiin.

Räjähtänyt käyttöönotto

"Räjähtävä" verkkosovellus on sovellus, jota ei ole pakattu WAR-tiedostoksi, eli se sisältää silti kaikki hakemistoissa ja tiedostoissa olevat elementit. Pakkaamasi Tomcat-arkisto lähetti useita tällä tavalla käyttöön otettuja esimerkkejä, jotka löydät / webapps / esimerkkejä hakemistoon. Räjähtävän käyttöönoton etuna on, että voit tarkastella siellä olevia tiedostoja huolimatta pakkaamisesta.

Jos navigoit kohtaan // paikallinen isäntä: 8080 / esimerkit /, löydät luettelon linkeistä. Tämän sivun renderöi Tomcat /webapps/examples/index.html tiedosto. Tomcat palvelee HTML-tiedostoa tiedostojärjestelmästä, joka on esimerkki Tomcatin Coyote-moottorista, joka toimii verkkopalvelimena.

Voit vapaasti tutustua esitettyihin esimerkkeihin - ne antavat sinulle hyvän yleiskuvan Tomcatin kyvyistä palvella palvelimia, JSP: itä ja WebSocketsia.

Tomcat sisältää myös oletusarvoisesti hallintasovelluksen, joka löytyy kohdasta / johtaja polku. Tämän sovelluksen avulla voit muun muassa käynnistää, pysäyttää ja siirtää sovelluksia verkkokonsolista.

Staattisen sisällön tarjoaminen

On mahdollista palvella tiedostoja tiedostojärjestelmästä tai lähettää edelleen Tomcatista toiseen HTTP-palvelimeen, kuten Apache. Toinen yleinen asennus on laittaa tiedostopalvelin, kuten Apache tai Nginx, Tomcatin eteen ja välittää sitten API-pyyntösi Tomcatiin. Näissä tapauksissa mod_JK-kirjastoa käytetään määrittämään Tomcat ja Apache (tai jopa toinen verkkopalvelin, kuten IIS) kommunikoimaan.

Paremman suorituskyvyn, pääasiassa staattisen sisällön toimittamisen suhteen, Tomcat tarjoaa myös natiivikääreitä Windowsille ja Linuxille. Tämä tunnetaan nimellä Tomcatin huhtikuu ja lisätietoja on täällä. Nämä eivät ole välttämättömiä tyypillisissä käyttötapauksissa, mutta niistä on hyvä tietää.

Upotettu Tomcat

Jetty oli pitkään ainoa palvelin, joka pystyi toimimaan upotettuna palvelimena. Se on muuttunut, ja nyt Tomcat voi myös toimia upotettuna. Upotetun palvelimen käyttämisen idea on, että sovellustiedostoja sisältävän palvelimen sijasta, kuten olet tähän mennessä nähnyt, sinulla on pääluokan sovellus (eli erillinen Java-sovellus), joka kutsuu palvelimen ominaisuuksia sen koodipohjan sisällä. Kaiken kaikkiaan tämä tarjoaa yksinkertaisemman ja kannettavamman kehitysmallin, ja siitä on tullut nopeasti normi. Esimerkiksi Spring Boot käyttää sulautettua Tomcat-esiintymää, joka toimii dev-tilassa.

Sulautetun palvelimen suorittaminen voi yksinkertaistaa toimintojen yksinkertaistamista, koska nyt on kyse vain yhdestä komponentista (sovelluksesta) sen sijaan, että tekisit sekä sovelluksen että palvelimen käyttöönoton. Toisaalta asennus, jossa Tomcat toimii itsenäisenä isäntänä, on edelleen hyvin yleinen.

TomEE

Tomcatin kanssa on mahdollista käyttää enemmän Java EE: n (tai Jakarta EE) tavanomaisia ​​ominaisuuksia lisäämällä kyseiset kirjastot itse Tomcatiin tai sovellusriippuvuuksiisi. Toinen vaihtoehto on TomEE-palvelin. TomEE on sama Tomcat-moottori, jolla on ylimääräinen Java-yritystuki, mukaan lukien suositut JPA- ja CDI (Contexts and Dependency Injection) -sovellusliittymät. TomEE: n tekniset tiedot perustuvat Java EE -verkkoprofiiliin, joten se antaa sinulle enemmän kuin Tomcat, mutta ei ole täysimittainen Java EE -sovelluspalvelin, kuten WildFly tai Glassfish.

Korkea käytettävyys ja ryhmittely

Tomcat tukee korkeaa saatavuutta ja klustereita. Korkea saatavuus on pohjimmiltaan kyky epäonnistuminen toiseen palvelimen ilmentymään ja luo istunto uudelleen ikään kuin mikään ei olisi mennyt pieleen. Klusterointi on kyky luoda useita versioita samasta palvelimesta suurten määrien liikenteen käsittelemiseksi.

Johtopäätös

Tomcat on edelleen aktiivisesti kehittynyt, pysymässä mukana muutoksissa ja toimittamalla vankan ja luotettavan alustan verkkosovellusten käyttöönottoon. Sekä sen jatkuva suosio että valinta oletukseksi Java-alustaksi monille PaaS-järjestelmille todistavat sen jatkuvasta menestyksestä.

Tämän tarinan "Mikä on Tomcat? Alkuperäinen Java-servlet-säilö" julkaisi alun perin JavaWorld.