Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Workaround
-
3.2.2
-
None
-
None
-
Unknown
Description
I have a WAR containing cxf-integration-cdi-3.2.1.jar that I deploy to Tomcat V9, successfully. When I deploy a WAR containing cxf-integration-cdi-3.2.7.jar, it fails to deploy because:
org.jboss.weld.exceptions.WeldException: WELD-001524: Unable to load proxy class for bean org.apache.cxf.cdi.ContextProducerBean@28c30f4d with class class java.lang.Object using classloader java.net.URLClassLoader@695caf9f
My WAR includes the Weld v2.4.6 jars.
Note: The ContextProducerBean class was introduced in CXF v3.2.2.
Others on the web, have reported a similar issue:
- https://stackoverflow.com/questions/56905194/class-not-found-in-war-but-is-available
- https://t.codebug.vip/questions-112783.htm
I'm suspicious that there is no scope modifier on the constructor in the ContextProducerBean class; thus, causing the scope to default to 'package private' and become hidden from Tomcat's class loader. Also, the super class, AbstractCXFBean<Object> does not declare a scope either. The fix might be to add the 'public' modifier to both, just guessing.