Postavite Spring Boot WAR na Tomcat poslužitelj

1. Uvod

Spring Boot je konvencija oko konfiguracijskog okvira koja nam omogućuje postavljanje proizvodno spremnih postavki projekta Spring, a Tomcat je jedan od najpopularnijih spremnika Java Servlet.

Prema zadanim postavkama Spring Boot izrađuje samostalni Java program koji se može izvoditi kao radna površina ili biti konfiguriran kao sistemska usluga, ali postoje okruženja u kojima ne možemo instalirati novu uslugu ili ručno pokrenuti aplikaciju.

Za razliku od samostalnih aplikacija, Tomcat je instaliran kao usluga koja može upravljati s više aplikacija u istom procesu aplikacije, izbjegavajući potrebu za određenim postavljanjem za svaki program.

U ovom ćemo vodiču stvoriti jednostavnu aplikaciju Spring Boot i prilagoditi je radu u programu Tomcat.

2. Postavljanje Proljetne aplikacije za pokretanje

Postavit ćemo jednostavnu web aplikaciju Spring Boot koristeći jedan od dostupnih početnih predložaka:

 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE org.springframework.boot spring-boot-starter-web 

Nema potrebe za dodatnim konfiguracijama izvan standarda @SpringBootApplication budući da se Spring Boot brine o zadanim postavkama.

Dodamo jednostavan REST EndPoint da bi nam vratio neki valjani sadržaj:

@RestController javna klasa TomcatController {@GetMapping ("/ hello") javna kolekcija sayHello () {return IntStream.range (0, 10) .mapToObj (i -> "Hello number" + i) .collect (Collectors.toList () ); }}

Izvršimo sada aplikaciju s mvn spring-boot: trčanje i pokrenite preglednik na // localhost: 8080 / zdravo za provjeru rezultata.

3. Stvaranje proljetnog čizma RAT

Kontejneri za servlet očekuju da će aplikacije ispuniti neke ugovore koji će se implementirati. Za Tomcat je ugovor Servlet API 3.0.

Da bi naša aplikacija ispunila ovaj ugovor, moramo izvršiti neke male preinake u izvornom kodu.

Prvo, moramo spakirati WAR aplikaciju umjesto JAR-a. Zbog toga se mijenjamo pom.xml sa sljedećim sadržajem:

rat

Sada, izmijenimo završnicu RAT naziv datoteke kako bi se izbjeglo uključivanje brojeva verzija:

 $ {artifactId} ... 

Zatim ćemo dodati ovisnost Tomcat:

 osiguran org.springframework.boot spring-boot-starter-tomcat 

Konačno, inicijaliziramo Servlet kontekst koji zahtijeva Tomcat implementirajući SpringBootServletInitializer sučelje:

@SpringBootApplication javna klasa SpringBootTomcatApplication proširuje SpringBootServletInitializer {}

Izvršavamo da bismo izgradili našu WAR aplikaciju koju je moguće razmjestiti u Tomcat mvn čisti paket. Nakon toga generira se naša WAR datoteka na target / spring-boot-tomcat.war (pod pretpostavkom da je Maven artefaktId je "spring-boot-tomcat").

Trebali bismo uzeti u obzir da ova nova postavka čini našu aplikaciju Spring Boot nesamostalnom (ako želite da ponovno radi u samostalnom načinu, uklonite pod uvjetom opseg iz ovisnosti o tomcat-u).

4. Raspoređivanje RATA na Tomcat

Da bi naša WAR datoteka bila raspoređena i pokrenuta u Tomcatu, moramo izvršiti sljedeće korake:

  1. Preuzmite Apache Tomcat i raspakirajte ga u mačak mapu
  2. Kopirajte našu WAR datoteku iz target / spring-boot-tomcat.war prema tomcat / webapps / mapu
  3. Od terminala dođite do mačka / kanta za smeće mapu i izvršiti
    1. catalina.bat trčanje (na Windowsima)
    2. catalina.š trčanje (na Unix sustavima)
  4. Ići // localhost: 8080 / spring-boot-tomcat / zdravo

Ovo je brzo postavljanje Tomcata, potražite cjelovit vodič za postavljanje u vodiču za instaliranje Tomcata. Postoje i dodatni načini postavljanja WAR datoteke u Tomcat.

5. Zaključak

U ovom kratkom vodiču stvorili smo jednostavnu aplikaciju Spring Boot i pretvorili je u valjanu WAR aplikaciju koja se može instalirati na Tomcat poslužitelju.

Kao i uvijek, puni izvorni kod primjera dostupan je na GitHub-u.