-
Bug
-
Resolution: Done
-
Critical
-
None
WAR CDI bean is failing to inject a CDI bean from a module-alias exported dependency. war -module-alias -> static module X -> static module Y (containing CDI Beans)
A WAR uses a module-alias with the slot attribute. This module-alias is referenced in jboss-deployment-structure.xml:
<jboss-deployment-structure> <deployment> <dependencies> <module name="mycompany.test.CDIJarMaven" slot="moduloAliasError" meta-inf="export" annotations="true" /> </dependencies> </deployment> </jboss-deployment-structure>
moduleAliasError which the app has the target moduloNivel2:
<module-alias xmlns="urn:jboss:module:1.1" name="mycompany.test.CDIJarMaven" slot="moduloAliasError" target-name="mycompany.test.CDIJarMaven" target-slot="moduloNivel2"/>
moduloNivel2 which the modulo-alias references depends on main module and is including/exporting META-INF where the beans.xml is located:
<module xmlns="urn:jboss:module:1.5" name="mycompany.test.CDIJarMaven"> <resources> <resource-root path="CDIJarMaven.jar"/> </resources> <dependencies> <module name="javax.faces.api" export="true"/> <!-- Timer de ejbs para el log de acceso--> <module name="javax.ejb.api"/> <module name="javax.enterprise.api" /> </dependencies> </module> {code:java} modulo main contains the jar with the CDI beans and has a META-INF/beans.xml in it: {code:java} <module xmlns="urn:jboss:module:1.1" name="mycompany.test.CDIJarMaven" slot="moduloNivel2"> <dependencies> <module name="mycompany.test.CDIJarMaven" slot="main" export="true"> <imports> <include path="META-INF**" /> </imports> <exports> <include path="META-INF**" /> </exports> </module> </dependencies> </module>
The error we get is:
WELD-001408: Unsatisfied dependencies for type PruebaDTO with qualifiers @Default at injection point [BackedAnnotatedField] @Inject private backingbeans.Page1.paginacion at backingbeans.Page1.paginacion(Page1.java:0)
Checking the code one can see how the beans.xml is seen :
EXTERNAL BeanDeploymentArchive (awar-mock02.war.external.jar:file:/jboss-eap-7.1/modules/mycompany/test/CDIJarMaven/main/CDIJarMaven.jar!/META-INF/beans.xml)
- is cloned by
-
JBEAP-14645 [GSS](7.1.z) Bean discovery in deployment dependencies (modules) fails to inject from static module-alias's exported dependency
- Closed
- relates to
-
JBEAP-14665 [EAT] : Adding test in EAT for JBEAP-14645 in order to be tested with all the servers
- Resolved