The Servlet 5.0 specification is out and Tomcat 10.0.x does support it. Time to dive into Tomcat 10.
Tomcat 10 requires Java version 8 or later and since OS X 10.7 Java is not (pre-)installed anymore. Let’s fix that by installing a Prebuilt OpenJDK Binary. Easy to follow details about how to install OpenJDK are available here. Anyway, after opening the Terminal app,
hopefully shows something like this:
openjdk 17.0.3 2022-04-19 OpenJDK Runtime Environment Temurin-17.0.3+7 (build 17.0.3+7) OpenJDK 64-Bit Server VM Temurin-17.0.3+7 (build 17.0.3+7, mixed mode, sharing)
Whatever you do, when opening Terminal and running ‘java –version’, you should see something like this, with a version of at least 1.8.x Again, Tomcat 10.0.x requires Java 8 or later.
JAVA_HOME is an important environment variable, not just for Tomcat, and it’s important to get it right. Here is a trick that allows me to keep the environment variable current, even after a Java Update was installed. In ~/.zshenv, I set the variable like so:
Here are the easy to follow steps to get it up and running on your Mac
- Download a binary distribution of the core module: apache-tomcat-10.0.21 from here. I picked the tar.gz in Binary Distributions Core section.
- Opening/unarchiving the archive will create a new folder structure in your Downloads folder: (btw, this free Unarchiver app is perfect for all kinds of compressed files and superior to the built-in Archive Utility.app)
- Open the Terminal app to move the unarchived distribution to /usr/local like so:
sudo mkdir -p /usr/local
sudo mv ~/Downloads/apache-tomcat-10.0.21 /usr/local
- To make it easy to replace this release with future releases, we are going to create a symbolic link that we are going to use when referring to Tomcat (after removing the old link, you might have from installing a previous version):
sudo rm -f /Library/Tomcat
sudo ln -s /usr/local/apache-tomcat-10.0.21 /Library/Tomcat
- Change ownership of the /Library/Tomcat folder hierarchy:
sudo chown -R <your_username> /Library/Tomcat
- Make all scripts in Tomcat’s ./bin folder executable:
sudo chmod +x /Library/Tomcat/bin/*.sh
Starting Tomcat by executing the provided scripts, like so:
Using CATALINA_BASE: /Library/Tomcat Using CATALINA_HOME: /Library/Tomcat Using CATALINA_TMPDIR: /Library/Tomcat/temp Using JRE_HOME: /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home Using CLASSPATH: /Library/Tomcat/bin/bootstrap.jar:/Library/Tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.
Finally, after your started Tomcat, open your Mac’s Web browser and take a look at the default page: http://localhost:8080
Stopping Tomcat by executing the provided scripts, like so: