Programmering

Hvad er Tomcat? Den originale Java-servletcontainer

Apache Tomcat er en langvarig, open source Java-servletcontainer, der implementerer flere centrale Java-virksomhedsspecifikationer, nemlig Java Servlet, JavaServer Pages (JSP) og WebSockets API'er.

Et Apache Software Foundation-projekt, Tomcat blev først udgivet i 1998, kun fire år efter selve Java. Tomcat startede som en referenceimplementering for den første Java Servlet API og JSP-spec. Selvom det ikke længere er referenceimplementeringen for nogen af ​​disse teknologier, forbliver Tomcat den mest anvendte Java-server og kan prale af en velafprøvet og gennemprøvet kernemotor med god udvidelse.

I denne korte introduktion lærer du, hvorfor mange softwareforretninger vælger Tomcat til at køre Java-webapps. Du får et overblik over Tomcat, og hvordan det bruges, samt installationsinstruktioner til den nyeste version i skrivende stund.

Tomcat og Java Servlet API

Tomcat 9 understøtter Servlet 4.0-spec og kræver JDK 8 eller højere. Tomcat 8.5 understøtter flere nyere funktioner som HTTP / 2, men forbliver en Servlet 3-container.

Hvilken type server er Tomcat?

Java-økosystemet understøtter flere slags applikationsservere, så lad os skelne mellem dem og se, hvor Tomcat passer ind:

  • EN servletbeholder er en implementering af Java Servlet-specifikationen, der primært bruges til hosting af Java-servlets.
  • EN Webserver er en server designet til at servere filer fra det lokale system, som Apache.
  • EN Java enterprise applikationsserver er en fuldt implementeret implementering af Java EE (nu Jakarta EE) specifikationen.

Tomcat er en servlet- og JSP-container. En Java-servlet indkapsler kode og forretningslogik og definerer, hvordan anmodninger og svar skal håndteres på en Java-server. JSP er en gengivelsesteknologi på serversiden. Som udvikler skriver du servlet eller JSP-siden og lader Tomcat håndtere routingen.

Tomcat indeholder også Coyote-motoren, som er en webserver. Takket være Coyote er det muligt at udvide Tomcat til at omfatte en række Java-virksomhedsspecifikationer og -funktioner, herunder Java Persistence API (JPA). Tomcat har også en udvidet version, kaldet TomEE, der inkluderer flere virksomhedsfunktioner. Jeg vil kort introducere TomEE senere i denne artikel.

Lad os begynde med et kig på at bruge Tomcat til at være vært for servlets og JSP'er.

Download og installer Tomcat

At være en urolig for softwareverdenen, et antal Tomcat-versioner er tilgængelige. Oplysninger om versionforskelle er tilgængelige på Tomcat-hjemmesiden. Du kan normalt bare vælge den nyeste stabile version.

Download til vores formål den nyeste version af Tomcat, som i øjeblikket er Tomcat 9. Du kan vælge at downloade Tomcat som et arkiv (.zip eller tar.gz) eller som en installeret tjeneste. Det bedste valg er op til dig - medmindre du selvfølgelig ikke kører på Windows, i hvilket tilfælde du går til arkivet. Vi bruger arkivet til denne artikel.

Windows-installation til Tomcat

Hvis du kører Windows og vil bruge installationsprogrammet, skal du blot downloade .exe-filen og køre den. Tomcat installerer sig selv som en service med rimelige standarder. Det vil derefter informere dig om, hvor installationen er, og du kan fortsætte, som om du havde pakket ud arkivet der.

Trin 1. Kommandolinieinstallation

Gå til kommandolinjen og skriv gunzip apache-tomcat-9.0.19.tar.gz efterfulgt af tar -xf apache-tomcat-9.0.19.tar. Dette skaber følgende mapper:

  • /beholder indeholder scripts til udførelse af Tomcat.
  • / webapps er det sted, hvor du vil installere dine apps.
  • / logs er, hvor Tomcat udsender sine logfiler. Bemærk, at Tomcats logfiler går ind i /logs/catalina.out som standard. Du kan bruge denne fil til at fejle problemer i forbindelse med app-specifikke logfiler.
  • / lib er hvor Tomcat ser efter JAR'er. Det er her, du gemmer yderligere pakker, der ikke er inkluderet i Tomcat, såsom JPA.
  • / konf er konfigurations-XML til Tomcat, hvor du kan gøre ting som at tilføje brugere og roller til Tomcat.

Trin 2. Start Tomcat

Hvis du installerede Tomcat som en tjeneste, kører den allerede. Ellers skal du gå videre og starte det ved at gå ind ./catalina.sh start på kommandolinjen. (Type ./catalina.sh uden argumenter for at se alle de tilgængelige kommandoer). Nu skal du være i stand til at gennemse Tomcats velkomstskærm i en browser.

Matthew Tyson

Implementering af applikationer i Tomcat

Tomcat's webapps bibliotek er det sted, hvor du implementerer et program. Du kan slippe en .krig fil der, og Tomcat kører den. En WAR-fil er standardemballagen til en webapplikationsressource: en JAR-fil med nogle ekstra filer, der fortæller containeren (i dette tilfælde Tomcat), hvordan den køres.

Bortset fra standardemballagen er der tre yderligere måder at implementere indhold i Tomcat på.

Eksploderet implementering

En "eksploderet" webapp er en applikation, der ikke komprimeres til en WAR-fil, hvilket betyder, at den stadig indeholder alle de elementer, der er anført i mapper og filer. Tomcat-arkivet, du pakket ud, blev leveret med flere eksempler, der blev implementeret på denne måde, som du finder i / webapps / eksempler vejviser. Fordelen ved en eksploderet implementering er, at du kan se på filerne der uden at bekymre dig om komprimering.

Hvis du navigerer til // localhost: 8080 / eksempler /, finder du en liste over links. Denne side er gengivet af Tomcat fra /webapps/eksempler/index.html fil. Tomcat serverer en HTML-fil fra filsystemet, som er en forekomst af Tomcats Coyote-motor, der fungerer som en webserver.

Du er fri til at udforske de præsenterede eksempler - de giver dig et godt overblik over Tomcats muligheder for betjening af servlets, JSP'er og WebSockets.

Tomcat inkluderer også en administrationsapp som standard, der findes under /Manager sti. Blandt andet giver denne app dig mulighed for at starte, stoppe og geninstallere apps fra en webkonsol.

Visning af statisk indhold

Det er muligt at servere filer fra filsystemet eller videresende fra Tomcat til en anden HTTP-server som Apache. En anden almindelig opsætning er at placere en filserver som Apache eller Nginx foran Tomcat og derefter videresende dine API-anmodninger til Tomcat. I disse tilfælde bruges mod_JK-biblioteket til at konfigurere Tomcat og Apache (eller endda en anden webserver som IIS) til at kommunikere.

For forbedret ydeevne, primært ved levering af statisk indhold, tilbyder Tomcat også native-indpakninger til Windows og Linux. Dette er kendt som Tomcat APR og mere information er tilgængelig her. Disse er ikke nødvendige for typiske brugssager, men gode at vide om.

Indlejret Tomcat

I lang tid var Jetty den eneste server, der kunne køre som en integreret server. Det har ændret sig, og nu kan Tomcat også køre integreret. Ideen med at bruge en integreret server er, at i stedet for den server, der indeholder applikationsfilerne, som du hidtil har set, har du et program med en hovedklasse (det vil sige en selvstændig Java-app), der påberåber serverfunktionerne fra inde i kodebasen. Samlet set tilbyder dette en mere enkel og bærbar udviklingsmodel og er hurtigt blevet normen. Spring Boot bruger for eksempel en indlejret Tomcat-instans, der kører i dev-tilstand.

At køre en integreret server kan være enkel i form af operationer, da du nu kun har at gøre med en enkelt komponent (appen) i stedet for at håndtere både appen og en serverinstallation. På den anden side er opsætningen, hvor Tomcat kører som en uafhængig vært, stadig meget almindelig.

Til mig

Det er muligt at bruge flere af standard Java EE (eller Jakarta EE) -funktioner med Tomcat ved at tilføje disse biblioteker til Tomcat selv eller til dine applikationsafhængigheder. En anden mulighed er TomEE-serveren. TomEE er den samme Tomcat-motor med yderligere Java-virksomhedsunderstøttelse, herunder de populære JPA- og CDI-API'er (Contexts and Dependency Injection). TomEEs spec er baseret på Java EE-webprofilen, så det giver dig mere end Tomcat, men er ikke en fuldt blæst Java EE-appserver som WildFly eller Glassfish.

Høj tilgængelighed og klyngedannelse

Tomcat understøtter høj tilgængelighed og klyngedannelse. Høj tilgængelighed er i det væsentlige evnen til fail-over til en anden forekomst af serveren og genskab sessionen igen, som om intet var gået galt. Klyngedannelse er evnen til at oprette flere versioner af den samme server til at håndtere trafik med stor volumen.

Konklusion

Tomcat er fortsat aktivt udviklet, holder trit med forandringer og leverer en solid og pålidelig platform til implementering af webapps. Både dens fortsatte popularitet og valg som standard Java-platform for mange PaaS-systemer vidner om den fortsatte succes.

Denne historie, "Hvad er Tomcat? Den originale Java-servletcontainer" blev oprindeligt udgivet af JavaWorld.

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