Vytvoriť Java REST službu je len polovica práce – skutočná výzva nastáva v momente, keď ju potrebujete nasadiť do produkčného prostredia. V tomto článku si krok po kroku vysvetlíme, ako prepojiť Maven, Tomcat a konfiguráciu databázy tak, aby vaša aplikácia fungovala spoľahlivo aj na živom serveri.
Správne nastavený pom.xml je základom pre budovanie a správu závislostí vašej aplikácie. V prípade Java REST služby budete potrebovať závislosti pre Jersey (REST framework), Hibernate (ORM) a JDBC ovládače pre konkrétnu databázu.
<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>
Nezabudnite nastaviť aj plugin pre build WAR súboru:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
Po nakonfigurovaní projektu stačí použiť príkaz:
mvn clean install
Výsledný WAR súbor nájdete v priečinku target/. Tento súbor môžete nahrať cez webové rozhranie Tomcat Manager (napr. na http://localhost:8080/manager) alebo skopírovať manuálne do priečinka webapps.
Pri deploymente cez webové rozhranie nezabudnite nastaviť prihlasovacie údaje v tomcat-users.xml.
Tomcat vám umožňuje definovať databázové pripojenie (DataSource) centrálne pre všetky aplikácie. Pridajte konfiguráciu do $CATALINA_HOME/conf/context.xml:
<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"/>
Vo vašom kóde potom stačí použiť:
@Resource(name="jdbc/MyDB")
Jednou z najčastejších chýb pri deploymente je konflikt verzií knižníc. Uistite sa, že:
servlet-api)Pri problémoch s načítaním DataSource sa uistite, že JDBC ovládač je v správnom priečinku (napr. lib/ Tomcat-u).
Bezpečný deployment znamená pripravenosť na zlyhanie. Odporúčané kroky:
app-v1.war, app-v2.war)V prípade problémov môžete aplikáciu jednoducho rollbacknúť nahratím predošlého WAR súboru alebo obnovením snapshotu servera.
Deploy Java REST služby nemusí byť zložitý, ak máte jasný plán a rozumiete jednotlivým krokom. Všetko, čo ste sa tu naučili, si môžete prakticky vyskúšať na našom kurze Java REST služby s Hibernate a JPA.
Viac informacií preberáme na kurze: