Tomcat Deployment

 Tomcat – Web Application Server Explained

Website vs Web Application

  • Website: Frontend only (DB optional)

  • Web Application: Frontend + Backend (DB mandatory)

What is Tomcat?

  • Java-based Web Application Server

  • Used to deploy Java applications

  • Free and open source

  • Platform independent

  • Default port: 8080

  • First released in 1999

Deployment Structure

  • .wartomcat/webapps

  • .jartomcat/lib

Popular Alternatives

  • Nginx

  • IIS

  • WebSphere

  • JBoss

  • GlassFish

  • WebLogic

📌 Tip: Jenkins slave can temporarily act as a Tomcat server.


Tomcat Installation & Configuration

Step 1: Create Server & Install Java

sudo -i apt update sudo apt install -y openjdk-17-jdk

Step 2: Download Tomcat

wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.113/bin/apache-tomcat-9.0.113.tar.gz

Step 3: Extract Files

tar -zxvf apache-tomcat-9.0.113.tar.gz

Step 4: Configure Users & Roles

Edit:

vim apache-tomcat-9.0.113/conf/tomcat-users.xml

Add:

<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="raham123" roles="manager-gui, manager-script"/>

Step 5: Allow Manager App Access

Edit:

vim apache-tomcat-9.0.113/webapps/manager/META-INF/context.xml

Delete line 21 and 22 (IP restriction).


Step 6: Start Tomcat

sh apache-tomcat-9.0.113/bin/startup.sh

  • URL: http://<PUBLIC-IP>:8080

  • Manager App login:

    • Username: tomcat

    • Password: raham123


Automated Tomcat Setup Script

#!/bin/bash sudo -i apt update apt install -y openjdk-17-jdk wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.113/bin/apache-tomcat-9.0.113.tar.gz tar -zxvf apache-tomcat-9.0.113.tar.gz sed -i '56 a\<role rolename="manager-gui"/>' apache-tomcat-9.0.113/conf/tomcat-users.xml sed -i '57 a\<role rolename="manager-script"/>' apache-tomcat-9.0.113/conf/tomcat-users.xml sed -i '58 a\<user username="tomcat" password="raham123" roles="manager-gui, manager-script"/>' apache-tomcat-9.0.113/conf/tomcat-users.xml sed -i '21d' apache-tomcat-9.0.113/webapps/manager/META-INF/context.xml sed -i '22d' apache-tomcat-9.0.113/webapps/manager/META-INF/context.xml sh apache-tomcat-9.0.113/bin/startup.sh

Deploying Application from Jenkins to Tomcat

Deployment Flow (Real Scenario)

  1. Jenkins builds the project

  2. WAR file is generated in workspace

  3. WAR is uploaded to Tomcat Manager

  4. Application goes live

Steps

  • Open Jenkins → Workspace

  • Copy the .war file (example: NETFLIX-1.2.2.war)

  • Open Tomcat Manager

  • Choose WAR file

  • Click Deploy

🎉 Application is now live on Tomcat.

Comments

Popular posts from this blog

Managing Amazon EBS Volumes and Snapshots Across Regions

Git for Beginners: Complete Guide from Installation to First Push on GitHub

AWS - Amazon Web Services