I have a Spring Boot application that we build as a war file to deploy to a Wildfly 9.0.2 container with a Java 8 update 191 JDK. This worked fine under Spring Boot 2.3.4, but when I upgraded to 2.4.1, I got the following error when I deployed the war file:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: Failed to start
service jboss.module.service."deployment.honorary.war".main: org.jboss.msc.service.StartException in
service jboss.module.service."deployment.honorary.war".main: WFLYSRV0179: Failed to load module: deployment.honorary.war:main
at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:91)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.jboss.modules.ModuleNotFoundException: jdk.unsupported:main
at org.jboss.modules.Module.addPaths(Module.java:1042)
at org.jboss.modules.Module.link(Module.java:1398)
at org.jboss.modules.Module.relinkIfNecessary(Module.java:1426)
at org.jboss.modules.ModuleLoader.loadModule(ModuleLoader.java:238)
at org.jboss.as.server.moduleservice.ModuleLoadService.start(ModuleLoadService.java:68)
... 5 more
If it matters, I have a jboss-deployment-structure.xml containing the following:
<?xml version="1.0" encoding="ISO-8859-1"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<!-- Required to allow hot-deployment of war file -->
<module name="asm.asm" />
<module name="mis.core.sso" />
<module name="ehcache" />
</dependencies>
<exclusions>
<module name="com.fasterxml.jackson.core.jackson-core" />
<module name="com.fasterxml.jackson.core.jackson-databind" />
<module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
<module name="org.jboss.resteasy.resteasy-jackson2-provider" />
</exclusions>
</deployment>
</jboss-deployment-structure>
I tried adding a module called "jdk.unsupported" but this didn't help.
Do you need me to attach my pom.xml file?
Comment From: lordofthemoon
I should have said, if I switch back to Spring Boot 2.3.4, the war file deploys successfully.
Comment From: wilkinsona
Thanks for the report. This change in behaviour is due to a change made in Spring Framework 5.3.
Wildfly 9.0.2 is over 5 years old and I would encourage you to upgrade to a more recent version of Wildfly where this problem does not occur. For example, we have a deployment integration test that uses Wildfly 20 and is not affected. If you cannot upgrade to a modern version of Wildfly you may want to open a Spring Framework issue to see if there's anything they can do.
Comment From: lordofthemoon
@wilkinsona thanks for digging into that. I'll raise an issue against Spring Framework.