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: