Using Lucee 7, I can see that we must change our loader class from: lucee.loader.servlet.CFMLServlet to either lucee.loader.servlet.javax.CFMLServlet or lucee.loader.servlet.jakarta.CFMLServlet.
This “works” for me using the jakarta version when I upgrade my servlet container to one that uses jakarta. However, I have a mountain of other dependencies to migrate at this point to get the application running with jakarta.
If I use the javax.CFMLServlet however, it immediately fails with class not found jakarta.servelet.ServletException.
Looking at the source code for the javax compatible CFMLServlet.java I immeditately see it pulling in dependencies that rely on jakarta. Is this intended/tested? Or is javax simply not supported in Lucee 7?
I see from the docs that yes, javax is no longer supported.
In this case, what is the reasoning for having:
lucee.loader.servlet.CFMLServlet (that throws deprecation errors)
lucee.loader.servlet.jakarta.CFMLServlet (the only one that works)
lucee.loader.servlet.javax.CFMLServlet (fails with missing jakarta errors)
Should this now be:
lucee.loader.servlet.CFMLServlet - the main servelet, working and using jakarta
lucee.loader.servlet.jakarta.CFMLServlet - compatibility proxy to lucee.loader.servlet.CFMLServlet
lucee.loader.servlet.javax.CFMLServlet - throws error saying no longer supported
Or even just going back to a single CFMLServlet and letting people know that javax no longer supported?
Or am I missing something?
yeah, alas, there’s a bit of tech debt there relating to the mixed mode javax / jakarta migration path for compat
I put together some docs about servlet configuration
1 Like