Programmering

Hva er Tomcat? Den originale Java-servletbeholderen

Apache Tomcat er en langvarig, åpen kildekode Java servlet container som implementerer flere kjerne Java enterprise spesifikasjoner, nemlig Java Servlet, JavaServer Pages (JSP) og WebSockets API.

Et Apache Software Foundation-prosjekt, Tomcat ble først utgitt i 1998, bare fire år etter selve Java. Tomcat startet som en referanseimplementering for den første Java Servlet API og JSP-spesifikasjonen. Selv om det ikke lenger er referanseimplementeringen for noen av disse teknologiene, er Tomcat fortsatt den mest brukte Java-serveren, og har en velprøvd og velprøvd kjernemotor med god utvidbarhet.

I denne korte introduksjonen lærer du hvorfor mange programvarebutikker velger Tomcat for å kjøre Java-nettapper. Du får en oversikt over Tomcat og hvordan den brukes, samt installasjonsinstruksjoner for den nyeste versjonen i skrivende stund.

Tomcat og Java Servlet API

Tomcat 9 støtter Servlet 4.0-spesifikasjonen og krever JDK 8 eller høyere. Tomcat 8.5 støtter flere nyere funksjoner som HTTP / 2, men er fortsatt en Servlet 3-container.

Hva slags server er Tomcat?

Java-økosystemet støtter flere typer applikasjonsservere, så la oss gjøre dem klare og se hvor Tomcat passer inn:

  • EN servletbeholder er en implementering av Java Servlet-spesifikasjonen, som primært brukes til hosting av Java-servlets.
  • EN Internett server er en server designet for å servere filer fra det lokale systemet, som Apache.
  • EN Java enterprise applikasjonsserver er en fullverdig implementering av Java EE (nå Jakarta EE) spesifikasjon.

Tomcat er en servlet og JSP-container. En Java-servett innkapsler kode og forretningslogikk og definerer hvordan forespørsler og svar skal håndteres på en Java-server. JSP er en gjengivelsesteknologi på serversiden. Som utvikler skriver du servletten eller JSP-siden, og lar Tomcat håndtere rutingen.

Tomcat inneholder også Coyote-motoren, som er en webserver. Takket være Coyote er det mulig å utvide Tomcat til å omfatte en rekke spesifikasjoner og funksjoner for Java-virksomheter, inkludert Java Persistence API (JPA). Tomcat har også en utvidet versjon, kalt TomEE, som inkluderer flere forretningsfunksjoner. Jeg vil kort introdusere TomEE senere i denne artikkelen.

La oss begynne med en titt på bruk av Tomcat til å være vert for servlets og JSPer.

Last ned og installer Tomcat

Å være en eldgammel av programvareverdenen, er en rekke Tomcat-versjoner tilgjengelig. Informasjon om versjonsforskjeller er tilgjengelig på Tomcat-hjemmesiden. Du kan vanligvis bare velge den siste stabile versjonen.

Last ned den nyeste versjonen av Tomcat, som for øyeblikket er Tomcat 9. For våre formål. Du kan velge å laste ned Tomcat som et arkiv (.glidelås eller tar.gz), eller som en installert tjeneste. Det beste valget er opp til deg - med mindre du selvfølgelig ikke kjører på Windows, i så fall vil du gå til arkivet. Vi bruker arkivet for denne artikkelen.

Windows-installasjon for Tomcat

Hvis du kjører Windows og vil bruke installasjonsprogrammet, kan du bare laste ned .exe-filen og kjøre den. Tomcat vil installere seg selv som en tjeneste med rimelige standardinnstillinger. Deretter vil den informere deg om hvor installasjonen er, og du kan fortsette som om du hadde pakket ut arkivet der.

Trinn 1. Installasjon av kommandolinje

Gå til kommandolinjen og skriv gunzip apache-tomcat-9.0.19.tar.gz etterfulgt av tar -xf apache-tomcat-9.0.19.tar. Dette skaper følgende kataloger:

  • / søppel inneholder skriptene for å utføre Tomcat.
  • / webapps er stedet der du vil distribuere appene dine.
  • /tømmerstokker er der Tomcat sender ut loggene. Merk at loggene til Tomcat går inn /logs/catalina.out som standard. Du kan bruke denne filen til å feilsøke problemer i forbindelse med appspesifikke loggfiler.
  • / lib er der Tomcat ser etter JAR. Dette er hvor du lagrer tilleggspakker som ikke er inkludert i Tomcat, for eksempel JPA.
  • / konf er konfigurasjons-XML for Tomcat, hvor du kan gjøre ting som å legge til brukere og roller for Tomcat.

Trinn 2. Start Tomcat

Hvis du installerte Tomcat som en tjeneste, kjører den allerede. Ellers fortsett og start den ved å gå inn ./catalina.sh start på kommandolinjen. (Type ./catalina.sh uten argumenter for å se alle tilgjengelige kommandoer). Nå bør du kunne bla til Tomcats velkomstskjerm i en nettleser.

Matthew Tyson

Implementerer applikasjoner i Tomcat

Tomcat er webapps katalogen er der du distribuerer et program. Du kan slippe en .krig filen der, og Tomcat vil kjøre den. En WAR-fil er standardemballasjen for en webapplikasjonsressurs: en JAR-fil med noen ekstra filer som forteller containeren (i dette tilfellet Tomcat) hvordan den skal kjøres.

Bortsett fra standardemballasjen, er det tre ekstra måter å distribuere innhold i Tomcat på.

Eksplodert distribusjon

En "eksplodert" webapp er et program som ikke er komprimert til en WAR-fil, noe som betyr at den fremdeles inneholder alle elementene som er lagt ut i kataloger og filer. Tomcat-arkivet du pakket ut, sendes med flere eksempler distribuert på denne måten, som du finner i / webapps / eksempler katalog. Fordelen med en eksplodert distribusjon er at du kan se på filene der uten å bekymre deg for komprimering.

Hvis du navigerer til // localhost: 8080 / eksempler /, finner du en liste over lenker. Denne siden er gjengitt av Tomcat fra /webapps/examples/index.html fil. Tomcat serverer en HTML-fil fra filsystemet, som er en forekomst av Tomcats Coyote-motor som fungerer som en webserver.

Du kan utforske eksemplene som presenteres - de gir deg en god oversikt over Tomcats muligheter for servering av servlets, JSP og WebSockets.

Tomcat inkluderer også en administrasjonsapp som standard, funnet under /sjef sti. Denne appen lar deg blant annet starte, stoppe og distribuere apper fra en nettkonsoll.

Serverer statisk innhold

Det er mulig å servere filer fra filsystemet, eller videresende fra Tomcat til en annen HTTP-server som Apache. Et annet vanlig oppsett er å plassere en filserver som Apache eller Nginx foran Tomcat, og deretter videresende API-forespørslene dine til Tomcat. I disse tilfellene brukes mod_JK-biblioteket til å konfigurere Tomcat og Apache (eller til og med en annen webserver som IIS) til å kommunisere.

For forbedret ytelse, hovedsakelig når det gjelder å levere statisk innhold, tilbyr Tomcat også originale innpakninger for Windows og Linux. Dette er kjent som Tomcat april og mer informasjon er tilgjengelig her. Disse er ikke nødvendige for typiske brukstilfeller, men gode å vite om.

Innebygd Tomcat

I lang tid var Jetty den eneste serveren som kunne kjøre som en innebygd server. Det har endret seg, og nå kan Tomcat også kjøre innebygd. Ideen med å bruke en innebygd server er at i stedet for serveren som inneholder applikasjonsfilene, som du har sett så langt, har du et program med en hovedklasse (det vil si en frittstående Java-app), som påkaller serverfunksjonene fra inne i kodebasen. Samlet sett tilbyr dette en mer enkel og bærbar utviklingsmodell, og har raskt blitt normen. Spring Boot, for eksempel, bruker en innebygd Tomcat-forekomst som kjører i dev-modus.

Å kjøre en innebygd server kan gi enkelhet når det gjelder operasjoner, siden du nå har å gjøre med bare en enkelt komponent (appen) i stedet for å håndtere både appen og en serverdistribusjon. På den annen side er oppsettet der Tomcat kjører som en uavhengig vert fortsatt veldig vanlig.

Til meg

Det er mulig å bruke flere av de vanlige Java EE (eller Jakarta EE) -funksjonene med Tomcat ved å legge til disse bibliotekene i selve Tomcat, eller til applikasjonsavhengighet. Et annet alternativ er TomEE-serveren. TomEE er den samme Tomcat-motoren med tilleggsstøtte for Java-bedrifter, inkludert de populære APIene for JPA og CDI (Contexts and Dependency Injection). TomEEs spesifikasjoner er basert på Java EE-webprofilen, så det gir deg mer enn Tomcat, men er ikke en fullverdig Java EE-appserver som WildFly eller Glassfish.

Høy tilgjengelighet og klynging

Tomcat støtter høy tilgjengelighet og klynging. Høy tilgjengelighet er egentlig evnen til fail-over til en annen forekomst av serveren og opprett økten på nytt som om ingenting hadde gått galt. Klynging er muligheten til å lage flere versjoner av samme server for å håndtere trafikk med høyt volum.

Konklusjon

Tomcat er fortsatt aktivt utviklet, holder tritt med endringer og leverer en solid og pålitelig plattform for distribusjon av webapper. Både dens fortsatte popularitet og valg som standard Java-plattform for mange PaaS-systemer vitner om den pågående suksessen.

Denne historien, "Hva er Tomcat? Den originale Java servletcontaineren" ble opprinnelig utgitt av JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found