Dear Maintainer,
I'm trying to setup a webapp (css-validator) with the xml file in
/etc/tomcat10/Catalina/localhost/css-validator.xml
Since the webapp still uses the javax.servlet classes, I made use of
<Loader jakartaConverter="TOMCAT" />
so that tomcat automatically converts the class names from javax.servlet to jakarta.servlet
When restarting tomcat10, it fails with ClassNotFoundException: org.apache.tomcat.jakartaee.EESpecProfile
Jun 24 18:35:15 debian tomcat10[38718]: Caused by:
org.apache.catalina.LifecycleException: Erreur lors du d<C3><A9>marrage du
chargeur
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:344)
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4290)
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:599)
Jun 24 18:35:15 debian tomcat10[38718]: ... 37 more
Jun 24 18:35:15 debian tomcat10[38718]: Caused by:
java.lang.NoClassDefFoundError: org/apache/tomcat/jakartaee/EESpecProfile
Jun 24 18:35:15 debian tomcat10[38718]: at
org.apache.catalina.loader.WebappLoader.startInternal(WebappLoader.java:322)
Jun 24 18:35:15 debian tomcat10[38718]: ... 41 more
Jun 24 18:35:15 debian tomcat10[38718]: Caused by:
java.lang.ClassNotFoundException: org.apache.tomcat.jakartaee.EESpecProfile
Jun 24 18:35:15 debian tomcat10[38718]: at
java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
Jun 24 18:35:15 debian tomcat10[38718]: at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
Jun 24 18:35:15 debian tomcat10[38718]: at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
So I installed tomcat-jakartaee-migration package which holds the jar
containing the required class.
This is however not sufficient. I finally had to create a symbolic link in
/usr/share/tomcat10/lib to /usr/share/tomcat-jakartaee-migration/lib/jakartaee-
migration-1.0.6-shaded.jar
Shouldn't this be handled automatically by either tomcat package or tomcat-
jakartaee-migration package? How to proceed otherwise?
I suppose there will be the same issue with tomcat11.
Regards
Fab