Course Summary
Administering Apache Tomcat training course covers the details of installing and configuring Tomcat Web Server.
Students will learn the details of the server.xml configuration file, an overview of Servlet and JavaServer Pages, a comparison of Tomcat to J2EE application servers, the Tomcat installation directories, deploying Java Web applications, the web.xml file, valves, logging, security realms, connecting Tomcat to Apache Web Server, hosting multiple Web sites, performance and scalability issues, load testing, clustering, monitoring, the Tomcat Manager and the Tomcat Administration tool.Duration
3 days.
Objectives
Upon completion of Marakana Tomcat Training course, you will be able to:
- Explain how Tomcat relates to Java EE (J2EE) and compares to other application servers (e.g. JBoss)
- Install and setup Tomcat on both Windows and UNIX-type environments
- Deploy, support, and troubleshoot applications on Tomcat
- Navigate Tomcat's directory structure
- Understand Tomcat architecture and configuration files: server.xml, context.xml, .properties, etc.
- Understand web application structure and configuration: web.xml
- Secure Tomcat and applications running on it
- Set up Tomcat for SSL
- Tune Tomcat's performance
- Explore different load-balancing and high-availability strategies with Tomcat, including server affinity through sticky sessions as well as session replication via Tomcat Clustering
Audience
Marakana Tomcat Training course is for web/application server administrators who need to be able to install, configure, run, and tune the Apache Tomcat Application Server.
To get the most benefit from the Marakana Tomcat Training course, you should be familiar with the basic principles of web/application server administration.
Additionally, prior exposure to any of these concepts can be helpful:
- Basic rules of XML (i.e., being able to edit XML files)
- HTTP protocol (i.e., the stateless nature of HTTP, the need for sessions, HTTP methods, SSL, etc.)
- Java environments (e.g., memory settings, automatic garbage collection, JDBC)
- Other Java EE (J2EE) application servers and basic concepts behind Java Web Applications
Please note that all these concepts are covered in the class.
Instructors
In addition to web sites, GUI applications, and mobile device software, Adam has also built high-volume middleware for one of the world's largest banks, and produced a new, modern integration to a 1960s-vintage mainframe app for one of the world's largest airlines.
Adam focuses on designing and coding systems in a way that yields predictable results, leverages best practices and high-productivity tools, minimizes excess code, and is fun to do. He has also spoken at tech conferencs, written articles and skill assessments, and produced an open source tool for software development. Adam has enjoyed teaching large and small groups, covering topics from nuts-and-bolts Java programming to merging ideal process with real-world constraints in an organization. More about Adam Breindel...
Aleksandar (Saša) Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is company's radar for technology that matters.
Aleksandar is the author of Marakana's Java, Advanced Java, Spring/Hibernate, JBoss, Apache, XML/XSL, and JUnit/TestNG training courses. Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies. As an instructor he's taught hundreds of classes for everyone from Apple to Disney, from NASA to the Department of Defense.
In his spare time Aleksandar runs the San Francisco Java and the San Francisco Android User Groups with over a thousand members between the two.
More about Aleksandar Gargenta...
Jason is a co-author of Tomcat: The Definitive Guide, now in its second edition, and has written some web articles for O'Reilly's OnJava.com web site.
Before joining the team at spigit, Jason was a Senior Principal Software Engineer for Orbital Sciences Corporation, working at NASA's Ames Research Center on the Kepler Space Telescope mission (http://kepler.nasa.gov).
Jason's specialties include Java software development, building social networking web applications, Tomcat web application development and deployment, scalability and fault tolerance, and Apache Ant build systems, and Linux system administration. He has contributed to many Apache Jakarta projects, and has been an active open source software developer for several years. More about Jason Brittain...
Additionally Martin has been producing electronic music for the last few years using Ableton Live. He has released two albums and has been playing his music live around the US and at festivals such as the Coachella, Shambhala and Burning Man festivals. Martin is currently working on a revolutionary open source music standard, to produce a platform for musicians to share and contribute to their art using the principals of open source software. Martin also teaches digital music production with tools such as Ableton Live and Cubase.
Martin has several real estate projects in progress in the Nicoya Peninsula in Costa Rica where he purchased large tracts of land several years ago and has begun developing infrastructure and reselling subdivisions. The ultimate goal in this project is to develop a 50 acre nature preservation around a man made reservoir, for the protection and preservation of indigenous animal and bird species that live in these coastal regions. More about Martin Folb...
Additional Notes
About the Platform
Marakana Tomcat Training course can be taught on both Windows and UNIX/Linux-type environments. The instructor covers both options during the training.
Marakana.com Runs on Tomcat

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.
Trademarks
Apache™ and Tomcat™ are a trademark of The Apache Software Foundation. All other marks are the properties of their respective owners.
Java Meetup Organized by Marakana
Marakana team organizes and runs the San Francisco Java Meetup - an interactive group of Java developers. In our monthly meetings, we discuss Java landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Java developers.
Outline
Apache Tomcat Training Overview
- Brief history of Apache
- The Apache Software Foundation
- The Jakarta Project
- Tomcat Licensing
- The J2EE Technologies
- Java Web Development
- Servlet/JSP Containers
Java Web Applications
- Overview of Servlets
- Advantages of Servlets
- Lifecycle of a Servlet
- Overview of JavaServer Pages
- A Simple JavaServer Page
- JSP and JavaBeans
- JSP Tag Libraries
- The MVC frameworks (e.g. Struts)
Installing Tomcat
- Downloading and Installing Apache Tomcat
- Overview of Installing Tomcat
- Download and install a JVM
- Download Tomcat
- Using the Windows installer
- Understanding Java memory managemenet and tweaking the JVM for performance
- Download and install Ant
Tomcat Directories
- Examining the Tomcat Installation Directories
- Tomcat Directory Structure
- The bin Directory
- common and shared Directories
- The conf Directory
- The logs Directory
- The server directory
- The work Directory
- The temp Directory
- The webapps Directory
- Web Application Directory Structure
- Deploying HTML and JSP Pages
- Deploying a Web Context
- Viewing the JSP Page
- Viewing the Generated Code
- Lab 1: Deploying a Web App
Configuring Tomcat
- Tomcat Configuration Techniques
- Tomcat’s Component Architecture
- The <Server> Element
- The <Service> Element
- The <Connector> Element
- The <Engine> Element
- The <Host> Element
- The <Context> Element
- The <Realm> Element
- The <Valve> Element
- The <Listener> Element
- The <Loader> Element
- The <Manager> Element
- The server.xml File
- Lab 2: Modifying server.xml
Deploying Web Applications
- Web Application Administration
- Deploying Web Applications
- The Directory Structure of a Web App
- web.xml configuration file
- Deployment Descriptors
- The <web-app></web-app> Element
- Mapping a Servlet to a URL
- The <resource-ref></resource-ref> Element
- The <env-entry></env-entry> Element
- The <ejb-ref></ejb-ref> Element
- A Sample web.xml file
- Lab 3: Deploying a Web Application
- Tomcat's default conf/web.xml file
- Tuning default JSP and Static-content servlets
The Tomcat Manager
- Deploying and Managing Web Application using the Tomcat Manager
- Starting the Tomcat Manager
- Tomcat Manager
- The Manager Section
- Applications
- Deploy
- Server Information
- Creating a WAR File
- Lab 4: Deploying a WAR File
- Java Management Extensions (JMX) on Tomcat
- Tomcat integration with Ant
Advanced Features
- Using Some of the Advanced Features of Tomcat
- Valves
- Access Log Valve
- Single Sign-on Valve
- Remote Address Filter
- Remote Host Filter
- Request Dumper Valve
- Configuring JNDI Resources
- JNDI: Java Naming and Directory Interface
- Defining a JNDI Resource
- The <environment></environment>Element
- The <resource></resource>Element
- Configuring a JavaMail Session
- Global Resources
- Lab 5: Using Valves
JDBC Connectivity
- Configuring Tomcat to Connect to a Database
- Overview of JDBC
- JDBC Drivers
- Connecting to a Database
- Connection Pools
- Download and Install MySQL
- Configure MySQL for Tomcat
- Create a Database in MySQL
- Download and Deploy a JDBC Driver
- Defining a DataSource in Tomcat
- Defining a Data Source Manually
- Modifying the Deployment Descriptor
- Detecting and closing leaked database connections
- Lab 6: JDBC Connections
Tomcat Security
- Configuring Security on Tomcat
- Security Considerations
- File System Security
- Filesystem Recommendations
- The Java Security Manager
- Granting Permissions to Java Apps
- Java Permissions
- Adding Your Own Policies
- Enabling the Java Security Manager
- Security Manager Tips
- Security Realms
- Different Types of Realms
- Configuring a Realm
- Users and Roles (authentication and authorization)
- Creating a Data Source Realm
- Protecting passwords
- FORM-based authentication
- Configuring Tomcat for SSL
- Requiring SSL in applications
- Lab 7: Create a Data Source Realm
Connectors
- Connecting Tomcat to Apache
- Overview of Connectors
- HTTP Connectors
- Advantages of Using a Web Server
- Connector Protocols
- Step 1: Configure an AJP Connector
- Step 2: Download mod_jk
- Step 3: Create the mod_jk.conf file
- Step 4: Start Tomcat
- Step 5: Create a Worker
- Step 6: Configure httpd.conf
- Test the Setup
- Load balancing applications across multiple Tomcat instances
- Issues with load balancing
- Server affinity via sticky sessions
- Shared session storage
- Replicated sessions via Tomcat clustering
- Lab: Clustering
Shared Hosting
- Overview of Shared Hosting
- Tomcat Virtual Hosting
- Configure Tomcat to enable virtual hosting as a stand-alone server
- Configure Tomcat to enable virtual hosting using jk2 or webapp.
- Configure Tomcat as Stand-alone
- Configure Tomcat with AJP
- Separate JVM for Each Host
- Lab: virtual hosting
Load Testing
- Using the JMeter Application
- Load Testing with JMeter
- Install JMeter
- Running JMeter
- Creating a Test Plan
- Configure the Thread Group
- Add a Task to the Thread Group
- Configure the HTTP Request
- Add a Report Listener
- Run the Test Plan
- Viewing the Results
Course Testimonials
It was exactly what we needed.
The instructor was great, well-rounded instructor, has expertise in the Tomcat and Java. This is definitely one of the best technical training course I have taken! I'd recommend this class to other Systems Admin who wants to learn more on Tomcat!
This course gave me a very clear understanding about setting up Tomcat, deploying applications and setting the security. I learnt the JDBC aspect of the Tomcat and I really benefitted from this training as a developer
I would highly recommend this class for any one trying to obtain tomcat skill or understand overall Middle ware application server skills. The snippets of development were helpful to understand the overall technology and how it all works together.
It was definitely a very good learning experience.
One of the best classes I have ever had. I will definitely be looking to come back again!
The course content was very useful. The material was very well structured and presentation was excellent. The instructor was very knowledgeable. Overall, this is probably the best course I have taken.
The class is very fast paced. The information presented was superb! Sasa is a true expert and had an answer for every question. If you need to know Tomcat and need to know it NOW, this is the class to take! Marc Ferrin DTN Operations Internet Team Leader
This class is like participating in a Vulcan mind meld. It is a wealth of information that you can take with you. Highly recommended!
Instructor was excellent
The instructor took time out to help me address some issues that we have been having on a new Tomcat implementation, so major Kudos to the instructor.
The instructor came prepared. He was extremely knowledgeable.
We may invite the instructor come to our company and teach us.
Definitely a worth while class. The instructor was great, he answered questions thoroughly and adapted his lesson plan to target my individual needs. I will certainly return to Marakana for additional training.
The course met my expectations and the instructor covered the topic well. I will recommend the class to anyone wanting to learn Tomcat.
The breath and depth of the instructor's experience and knowlege was phenominal. The course was a great experience.
Awesome experience. Best training course I've ever attended.
This was the best class I have ever been to
The instructor has an excellent amount of knowledge. I wish I had more time to take additional classes and ask questions for fulfilling my expertise in other disciplines like apache, java, mysql, etc.
Excellent Training!
This was a very thorough class. I learned much more than I ever expected. Instructor knew the material inside and out and was able to answer all questions completely. The diagram of the server layout alone was worth whatever the class cost is.
The course was very clear and interesting, adapted to both developers and administrators. The charts and drawings made a significant difference.
Nothing to improve. The instructor was very knowledgeable and no question was outside his ability to answer solidly and concise. Very enjoyable.
Very patient, great instructor, really knowledgeable. 'Excellent' really aplies to [the instructor]!
Have been in the IT environment for a lot of years and taken many courses. This was as good or better than any course I've taken in the past. The subject matter was relatively foreign to me going in but quite familiar by the end of the 3 days. The instructor (Martin) was patient and attentive to the student needs, while also keeping the course at the necessary speed to cover the material. Hectic three days, but learned a lot. Great course. Great instructor.
Marakana offered us a comprehensive and knowledgeable view of Tomcat that prepared us to meet the challenges of converting our entire Application Server infrastructure to the low-cost open source solution offered by Tomcat.
Instructor is well informed with the ideal set on figuring out things for yourself and if you really get stuck he can easily help you out in more detail.
Thanks! Great class! I learned a lot and look forward to using what I learned next week.
Loved it! Great info... great instructor!
Sasa was an excellent teacher.
