Modifying XNAT in Response to Apache Tomcat 7 EOL

Beginning with XNAT 1.7.0 and running through XNAT 1.8.1, XNAT has run on Apache Tomcat 7. As of March 31, 2021, Tomcat 7 has reached its end of life. Not only will Tomcat 7 stop receiving security updates, it will be removed from most software repositories–including Debian and Ubuntu apt repositories and RHEL/Fedora/CentOS yum repositories–in the near future, if it hasn't already.

Even prior to the 1.8.2 release, XNAT has already been tested against Apache Tomcat 8.5 and 9.0 and it should work seamlessly in these environments:

  • The modifications required to enable support for Tomcat 8.5 and 9.0 in XNAT 1.8.1 and earlier is simple and described in Running XNAT on Tomcat 8.5 and Later
  • XNAT 1.8.2 and later work on Tomcat 8.5 and 9.0 without modification

The updates to the XNAT Vagrant project for XNAT 1.8.2 (and more specifically the xnatstack-ubuntu2004 base box) include updating from Tomcat 7.0 to 9.0. This is not due to any issues with Tomcat 8.5 itself but instead to a bug in the version of Tomcat 8.5 available in the Ubuntu apt repositories. If you have a version of Tomcat 8.5–or an operating system with a version of Tomcat 8.5–that doesn't have this issue, then XNAT 1.8.2 and later will run there without modification.

Impact on Future XNAT Development

Beginning with XNAT 1.8.2, Apache Tomcat 9.0 will be the default environment for development and testing. We highly recommend moving your systems to Tomcat 9.0 if you can. However, if you need to run on an earlier version of Tomcat:

  • You can easily modify XNAT 1.8.2 and later to run on run on Tomcat 7
  • XNAT 1.8.2 and later run without modification on Tomcat 8.5

Preserving a Legacy Environment

Since Tomcat 7 will be removed from the CentOS repositories, we do not recommend attempting to continue running in this environment. However, if this is a requirement, we suggest running in a containerized environment such as one of these: