Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-14645

[GSS](7.1.z) Bean discovery in deployment dependencies (modules) fails to inject from static module-alias's exported dependency

    XMLWordPrintable

Details

    • EAP 7.1.3

    Description

      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)
      

      Attachments

        Issue Links

          Activity

            People

              spyrkob Bartosz Spyrko-Smietanko
              rhn-support-tmiyargi Teresa Miyar Gil (Inactive)
              Jiří Bílek Jiří Bílek (Inactive)
              Jiří Bílek Jiří Bílek (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: