FAQs

Frequently Asked Questions - tomcat ClassNotFoundException NoClassDefFoundError javax jakarta

FAQs - tomcat ClassNotFoundException NoClassDefFoundError javax jakarta

This is because Tomcat 10.x is based on Jakarta EE rather than Java EE. In Jakarta EE, various javax.* packages have been migrated to new jakarta.* packages and this causes various java.lang.ClassNotFoundException errors when deploying applications that still use the "old" Java EE javax.* packages.

Because QuartzDesk aims to support a wide range of modern application servers / containers most of which are still Java EE-based, it is currently impossible to migrate QuartzDesk to Jakarta EE.

Fortunately, Tomcat 10.x provides an easy way to host "old" Java EE-based applications, QuartzDesk Web Application included. All you need to do is add the following line to the QuartzDesk Web Application's deployment descriptor typically located in ${TOMCAT_HOME}/conf/Catalina/localhost/quartzdesk.xml file.

<Context path="/quartzdesk" docBase="...">
...
<Loader jakartaConverter="TOMCAT" />
...
</Context>