I have an EAR app that has been running for years under JBoss/WildFly. I recently tried to migrate it to WildFly 29.0.0.Final, and I'm getting the following error. This is a Maven project, and since I'd like this to be able to run under any standard EJB server I tend to avoid WF-specific XML files or modifications, although I do have a jboss-cli script to do WF-related configuration. Also, this app dates from the EJB 2 days, so I tend to avoid annotations wherever possible, using the older XML descriptor files as much as possible.
The error occurs when trying to deploy the EAR:
13:58:42,818 ERROR [org.jboss.as.controller.management-operation] (DeploymentScann
er-threads - 1) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {
"WFLYCTL0080: Failed services" => {"jboss.deployment.subunit.\"dvd-ear.ear\".\
"org.profsoftsvcs-dvd-ejb-1.0-SNAPSHOT.jar\".POST_MODULE" => "WFLYSRV0153: Failed
to process phase POST_MODULE of subdeployment \"org.profsoftsvcs-dvd-ejb-1.0-SNAPS
HOT.jar\" of deployment \"dvd-ear.ear\"
Caused by: java.lang.RuntimeException: WFLYSRV0177: Error getting reflective information for interface javax.ejb.SessionBean with ClassLoader ModuleClassLoader
for Module \"deployment.dvd-ear.ear\" from Service Module Loader
Caused by: java.lang.ClassFormatError: Failed to link javax/ejb/EJBException (
Module \"deployment.dvd-ear.ear\" from Service Module Loader): Absent Code attribute in method that is not native or abstract in class file javax/ejb/EJBException"}
,
"WFLYCTL0412: Required services that are not installed:" => [
"jboss.deployment.unit.\"dvd-ear.ear\".beanmanager",
"jboss.deployment.unit.\"dvd-ear.ear\".WeldStartService"
],
"WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"dvd-ear.ear\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"dvd-ear.ear\".beanmanager, jboss.deployment.unit.\"dvd-ear.ear\".WeldStartService]"]
WildFly is running under JDK 17, but the app is built with JDK 8, because of problems with the WF Client-side code and JDK >=9. There are hints of reflection problems in the above error, but I'm more concerned with the unavailablity of the CDI stuff like Weld.
I've added a beans.xml file to src/main/resources/META-INF with bean-discovery-mode="all", to no avail.
Any ideas would be welcome, thanks