I run into a problem with an upgrade to Spring Boot 3. For the layout we use JSP and defined the base layout in a custom tag <t:baseLayout>. After upgrading to Spring Boot 3 and Tomcat 10.1 the system can't load the custom tags anymore.
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:baseLayout>
Test
</t:baseLayout>
This was working before. When I run it now I get the following error.
Caused by: java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.Tag
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1437) ~[catalina.jar:10.1.7]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245) ~[catalina.jar:10.1.7]
... 182 common frames omitted
I know that the "javax" namepace isn't supported anymore in that part but it have haven't defined it. Does anyone know how to solve that problem?
Just in case, I'm also using JSTL
<%@taglib prefix="c" uri="jakarta.tags.core" %>
and this part is working fine and I have installed the following packages.
implementation group: 'jakarta.servlet.jsp.jstl', name: 'jakarta.servlet.jsp.jstl-api', version: '3.0.0'
implementation group: 'org.glassfish.web', name: 'jakarta.servlet.jsp.jstl', version: '3.0.1'
So in the end i found no working solution for this problem so i migrated the templates to Thymeleaf. There are several libs that didn't work with the tags.