Telepítsen egy tavaszi indító WAR-ot egy Tomcat szerverre

1. Bemutatkozás

A Spring Boot egy olyan egyezmény a konfigurációs keretrendszeren, amely lehetővé teszi számunkra a Spring projekt gyártásra kész beállításának beállítását, és a Tomcat az egyik legnépszerűbb Java Servlet-konténer.

Alapértelmezés szerint a Spring Boot készít egy önálló Java alkalmazást, amely asztali alkalmazásként futtatható vagy rendszerszolgáltatásként konfigurálható, de vannak olyan környezetek, ahol nem tudunk új szolgáltatást telepíteni, vagy az alkalmazást manuálisan futtatni.

Az önálló alkalmazásokkal szemben a Tomcat olyan szolgáltatásként van telepítve, amely több alkalmazást képes kezelni ugyanazon alkalmazásfolyamaton belül, elkerülve az egyes alkalmazások egyedi beállításának szükségességét.

Ebben az útmutatóban létrehozunk egy egyszerű Spring Boot alkalmazást, és adaptáljuk a Tomcat-on belüli működéshez.

2. Tavaszi indító alkalmazás beállítása

Be fogunk állítani egy egyszerű Spring Boot webalkalmazást a rendelkezésre álló indító sablonok egyikével:

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

Nincs szükség további konfigurációkra meghaladja a színvonalat @SpringBootApplication mivel a Spring Boot gondoskodik az alapértelmezett beállításról.

Hozzáadunk egy egyszerű REST EndPoint-ot, hogy visszatérjen számunkra érvényes tartalom:

@RestController public class TomcatController {@GetMapping ("/ hello") public Collection sayHello () {return IntStream.range (0, 10) .mapToObj (i -> "Hello szám" + i) .collect (Collectors.toList () ); }}

Most hajtsuk végre az alkalmazást a mvn spring-boot: fut és indítson egy böngészőt itt: // localhost: 8080 / hello hogy ellenőrizze az eredményeket.

3. Tavaszi indító háború létrehozása

A Servlet-tárolók elvárják, hogy az alkalmazások teljesítsenek néhány telepítendő szerződést. A Tomcat esetében a szerződés a Servlet API 3.0.

Ahhoz, hogy alkalmazásunk megfeleljen a szerződésnek, néhány apró módosítást kell végrehajtanunk a forráskódban.

Először WAR alkalmazást kell csomagolnunk JAR helyett. Ehhez megváltozunk pom.xml a következő tartalommal:

háború

Most módosítsuk a döntőt HÁBORÚ fájlnév, hogy ne kerüljön bele a verziószám:

 $ {artifactId} ... 

Ezután hozzáadjuk a Tomcat-függőséget:

 org.springframework.boot spring-boot-starter-tomcat biztosított 

Végül inicializáljuk a Tomcat által megkívánt Servlet kontextust a SpringBootServletInitializer felület:

A @SpringBootApplication nyilvános osztály SpringBootTomcatApplication kiterjeszti a SpringBootServletInitializer alkalmazást {}

A Tomcat telepíthető WAR alkalmazásunk elkészítéséhez végrehajtjuk az mvn tiszta csomagot. Ezt követően a WAR fájlunk a következő helyen jön létre: target / spring-boot-tomcat.war (feltételezve, hogy a Maven artefactId „tavaszi csizmás macska”).

Figyelembe kell vennünk, hogy ez az új beállítás a Spring Boot alkalmazást nem önálló alkalmazássá teszi (ha azt szeretné, hogy ismét önálló módban működjön, távolítsa el a biztosítani hatókör a tomcat-függéstől).

4. A WAR telepítése Tomcathoz

A WAR fájl telepítéséhez és futtatásához a Tomcat-ban a következő lépéseket kell végrehajtanunk:

  1. Töltse le az Apache Tomcat alkalmazást, és csomagolja ki a kandúr mappába
  2. Másolja a WAR fájlunkat innen target / spring-boot-tomcat.war hoz tomcat / webapps / mappába
  3. A terminálról navigáljon a tomcat / bin mappát, és hajtsa végre
    1. catalina. denevérfuttatás (Windows rendszeren)
    2. catalina.sh futás (Unix alapú rendszereken)
  4. Menj // localhost: 8080 / spring-boot-tomcat / hello

Ez a Tomcat gyors telepítése volt. Kérjük, olvassa el a teljes telepítési útmutatót a Tomcat telepítési útmutatójában. A WAR fájl Tomcatba történő telepítésének további módjai is vannak.

5. Következtetés

Ebben a rövid útmutatóban létrehoztunk egy egyszerű Spring Boot alkalmazást, és egy érvényes WAR alkalmazássá alakítottuk, amelyet egy Tomcat szerveren telepíthetünk.

Mint mindig, a példák teljes forráskódja elérhető a GitHubon.


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