Od lokálního vývoje k živému serveru: Deploy Java REST na Tomcat s Mavenem

Vytvořit Java REST službu je pouze polovina práce – skutečná výzva přichází, když ji potřebujete úspěšně nasadit do produkce. V tomto podrobném průvodci si krok za krokem ukážeme, jak propojit Maven, Tomcat a databázovou konfiguraci tak, aby vaše aplikace spolehlivě běžela na ostrém serveru.

1. Přehled pom.xml: Jak definovat závislosti pro REST, Hibernate a databázi

Soubor pom.xml je srdcem každého Maven projektu. Pro REST aplikaci potřebujete specifikovat knihovny pro Jersey (REST), Hibernate (ORM) a JDBC ovladač pro konkrétní databázi, např. MySQL.

<dependencies>
  <dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.35</version>
  </dependency>

  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.6.15.Final</version>
  </dependency>

  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.29</version>
  </dependency>
</dependencies>
  

Dále přidáme plugin pro generování WAR souboru:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.3.2</version>
    </plugin>
  </plugins>
</build>
  

2. Vytvoření WAR souboru pomocí Mavenu a nasazení do Tomcat Managera

Po správné konfiguraci projektu spusťte příkaz:

mvn clean install

Výsledný soubor .war naleznete ve složce target/. Tento soubor lze nasadit buď ručně do adresáře webapps Tomcatu, nebo prostřednictvím webového rozhraní Tomcat Manager (http://localhost:8080/manager).

Abyste měli přístup k Tomcat Manageru, upravte soubor tomcat-users.xml a přidejte administrátorského uživatele s rolí manager-gui.

3. Konfigurace Tomcat serveru, datasources a resource definice

Pro připojení k databázi doporučujeme definovat datasource přímo v konfiguraci Tomcatu. Do souboru $CATALINA_HOME/conf/context.xml vložte například:

<Resource name="jdbc/MyDB"
          auth="Container"
          type="javax.sql.DataSource"
          maxTotal="100"
          maxIdle="30"
          maxWaitMillis="10000"
          username="dbuser"
          password="dbpass"
          driverClassName="com.mysql.cj.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/mydb"/>
  

Ve vaší aplikaci můžete přistupovat k tomuto zdroji pomocí anotace:

@Resource(name="jdbc/MyDB")

4. Řešení chyb při spouštění (classpath, verze JDK, konfliktní knihovny)

Často se vyskytují chyby typu ClassNotFoundException nebo NoClassDefFoundError. Nejčastější příčiny:

Doporučujeme používat mvn dependency:tree pro kontrolu stromu závislostí a eliminaci konfliktů.

5. Aktualizace a roll-back: Základní principy bezpečného nasazení

Produkční prostředí vyžaduje opatrnost. Před každým nasazením doporučujeme:

Pokud dojde k chybě, stačí smazat nový WAR a nahradit jej záložní verzí – rollback by měl byť otázkou niekoľkých minút.

Závěr: Od vývoje k produkci bez stresu

Pokud si osvojíte tyto kroky, budete schopni samostatně spravovat kompletní nasazení REST služeb v prostředí Java EE. Celý tento proces si můžete detailně vyskúšet na našem kurzu Java REST služby s Hibernate a JPA, kde se naučíte vytvářet plně funkční backendy i frontendy.

Jak začít programovat?

Úvod do programování pro každého bez předchozích znalostí.

Stáhněte si náš ebook teď výjimečně zdarma!!!

Viac informacií preberáme na kurze:

Kurz JAVAEEREST - JAVA REST - RESTful Webové služby s Hibernate

Marián Knězek