Classloader troubleshooting in Payara 6.2

I am trying to deploy/run a JSP application in Payara 6.2 which has been upgraded to Jakarta 9.1. All relevant pom file dependencies, Java code, and JSP have been updated for Jakarta. There are no references to javax.servlet anywhere in the code base. When I attempt to deploy the application, the application server errors out while trying to load the class javax.servlet.jsp.tagext.BodyTagSupport (see below):

java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: javax/servlet/jsp/tagext/BodyTagSupport.

I’m not sure why the classloader is trying to load the old javax version of the class and trying to figure out how to rectify this. I don’t see anything in the application dependencies that should be causing this.

Hi,
I have seen similar situation with Faces, when I use Primefaces. It’s necessary to use the right version of the library.
If you don’t have any “javax” in your application, I would suspect libraries.
Can you share your dependencies in the pom.xml?

Petr

Hi, this is a large app with multiple pom files/subcomponents. I’m not sure that i could share everything but I could share servlet/JSP related dependencies if you think that would help.

Hi, anything found in the meantime?
Yes, if you are able to do a small reproducer, it would help.
Petr