Spring Boot Uygulamasından WAR Elde Edilip Tomcat'e Deploy Edilmesi
Merhabalar.
08.02.2020 tarihinde https://www.youtube.com/watch?v=ljC-1KmIAKY&t=28s adresinde bir Spring Boot uygulamasından WAR paketi elde edilip Tomcat’e deploy edilmesi konusunu anlatmıştım. Bu yazıda da videonun yazılı halini sizinle paylaşacağım.
Bildiğimiz gibi @SpringBootApplication notasyonu ile işaretli sınıftan Spring Boot uygulamamızı başlatabiliyoruz. Fakat uygulamadan bir WAR elde edip bir Tomcat’e deploy etme ihtiyacı duyduğumuzda sınıfımızda ayarlama yapmamız gerekecektir.
Şimdi benim elimde basit bir demo Spring Boot uygulaması var. Bu uygulamayı @SpringBootApplication notasyonu ile işaretli sınıftan başlattığım zaman http://localhost:8080/api/drivers adresi üzerinden erişebildiğim ve bana aşağıdaki bir cevap dönen servisim var.
Ben bu Spring Boot uygulamasından bir IDE içerisinde ya da komut satırı üzerinde mvn clean install komutunu çalıştırarak bir WAR dosyası elde ediyorum ve akabinde kullanacağım Tomcat’in webapps dizini altına elde ettiğim WAR dosyasını koyuyorum.
Kullanacağım Tomcat’in dizininin içindeki bin dizininde bir adet startup.bat dosyası yer alıyor. Komut satırı aracılığı ile bu dosyayı çalıştırdığımda webapps altında yer alan WAR dosyaları Tomcat’e deploy ediliyor. .bat dosyasını çalıştırdıktan sonra browser’dan http://localhost:8080/DemoSpringBootProject-1.0-SNAPSHOT/api/drivers adresine gittiğimde 404 Not Found hatası alıyorum.
Bunun sebebi de @SpringBootApplication notasyonu ile işaretli sınıfın konfigüre edilmemiş olmasıdır. Bu konfigürasyon işlemi de oldukça basit. Sınıfımızı aşağıdaki şekilde SpringBootServletInitializer sınıfından kalıtırsak ve configure metodunu da override edersek uygulamamız WAR elde edilip Tomcat’e deploy edilecek hale gelecektir.
Bu değişiklik akabinde mevcut sunucuyu durdurup webapps dizini altındaki WAR dosyası ve deploy edilmiş klasörü silip mvn clean install komutu ile uygulamadan tekrar WAR dosyası elde ediyoruz ve webapps dizini altına bu WAR dosyasını koyup Tomcat’i yeniden başlatıyorum.
Şimdi tekrardan http://localhost:8080/DemoSpringBootProject-1.0-SNAPSHOT/api/drivers adresine istekte bulunduğumda uygulamanın çalıştığını görüyorum.
Bu yazıda anlatacağım da bu kadar arkadaşlar. Başka yazıda görüşene kadar sağlıcakla kalın.