Payara is incompatible with SpringFramework's Web MVC

I’ve been working on moving my app to Payara 6 in order to keep up with the Javax EE to Jakarta EE. Frankly, it has not gone well as this app relies heavily on SpringFramework Web MVC. I’m running into messages about ASM 8 and 9 required and CDI not being available. Getting past the errors finally got the best of me and I’ve written to a Spring developer Juergen Hoeller. He responded today with the following email:

Sorry to hear that there is so much trouble on Payara still. We also have corresponding reports on GitHub:

Unfortunately neither of the two is an actual problem to be solved on Spring’s own side, as far as I can see.

With the CDI issue, it’s Payara’s CDI implementation not being able to parse Java 17’s new record types.

Also, I wonder why Payara needs to parse every single deployed class file if you are not actually using CDI.

It might be possible to turn that off, but at the very least, Payara should defensively handle “unknown” types.

With the Hibernate issue, it’s a problem with Hibernate 6 initializing its Jackson configuration on Payara.

There does not seem to be a StAX provider available, and Hibernate insists on one being present for Jackson.

Overall, this needs to be taken to Payara and Hibernate, we are not aware of anything Spring can do better.

Feel free to add further comments to the GitHub issues in case there is anything we can do from our side!

Even if our focus is on Tomcat/Jetty these days, we of course want Spring 6 to work fine on Payara as well.

Thanks for your efforts to try to make this work,

Juergen

So if anyone wants to take their Web MVC app to the next level, you’ll have to hold off, go with another Web Server, or wait till Oracle/Payara developers bring Glassfish up to speed with ASM and CDI.

Happy journeys, everyone!

It’s a bug in org.glassfish.hk2:class-model that Payara uses.