 
                
  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.
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>
  
  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.
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")
Často se vyskytují chyby typu ClassNotFoundException nebo NoClassDefFoundError. Nejčastější příčiny:
WEB-INF/liblib adresářiDoporučujeme používat mvn dependency:tree pro kontrolu stromu závislostí a eliminaci konfliktů.
Produkční prostředí vyžaduje opatrnost. Před každým nasazením doporučujeme:
app.war)app-v1.war, app-v2.war)logs/catalina.out a application.logPokud 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.
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.
Viac informacií preberáme na kurze:
