WFLY 15 + @WebListener Transaction Issues?
csetera Dec 10, 2018 1:30 PMWe in the process of updating our underlying Wildfly version from 11 to (preferably) 15. I've updated to version 14 successfully with a few minor changes to our application to make newer versions of Weld happy with our code. However, attempting to take the step to the latest version 15, we are failing in a way that I don't see a solution on our side? When starting our app (or attempting to deploy a new version), we are seeing the following:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.subunit.\"bv-application.ear\".\"bv-core-war.war\".undertow-deployment" => "java.lang.RuntimeException: javax.servlet.ServletException: UT010013: Could not instantiate xxx.yyy.SessionTracker
Caused by: java.lang.RuntimeException: javax.servlet.ServletException: UT010013: Could not instantiate xxx.yyy.SessionTracker
Caused by: javax.servlet.ServletException: UT010013: Could not instantiate xxx.yyy.SessionTracker
Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
Caused by: org.jboss.weld.exceptions.WeldException: WELD-001524: Unable to load proxy class for bean Extension [class com.arjuna.ats.jta.cdi.TransactionExtension] with qualifiers [@Default]; bv-core-war.war with class class com.arjuna.ats.jta.cdi.TransactionExtension using classloader ModuleClassLoader for Module \"deployment.bv-application.ear\" from Service Module Loader
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: com/arjuna/ats/jta/cdi/TransactionExtension
Caused by: java.lang.NoClassDefFoundError: com/arjuna/ats/jta/cdi/TransactionExtension
Caused by: java.lang.ClassNotFoundException: com.arjuna.ats.jta.cdi.TransactionExtension from [Module \"deployment.bv-application.ear\" from Service Module L
In this case, xxx.yyy.SessionTracker is marked as a @WebListener. A different class of ours is currently commented out, but has the same issue and characteristics. This seems like it may be some kind of ordering issue where the @WebListener's are being created before the transaction management subsystem is ready. Are we wrong in trying to do things this way? It has worked to this point across multiple versions.
Any insights most appreciated.
Craig