java ee - Annotations on fields not processed between different deployments in JBoss -


we have issue have superclass annotation (@resource) , subclasses extend superclass are stateless beans.

very similar this, if superclass , subclass in same module resource injected successfully. if in separate modules resource not injected - seems annotation not processed.

i've verified through reflection annotation "seen" on class, when step resourceinjectionannotationparsingprocessor, @resource annotation not show on classes inherit other modules (although show on classes in same module).

the common solution i've been seeing jandex files , set annotations="true" seems static modules, not other deployments such in our case.

the other suggestion modules missing dependency on annotations, in example modules involved had dependency on <module name="javax.annotation.api"/>.

is there other way make these annotations "visible" separate deployments?

as minimal example, if have superclass

import javax.annotation.resource; import javax.ejb.sessioncontext;  public class baseresource {   @resource   private sessioncontext sessioncontext;    public string getcontext() {     return "context " + sessioncontext;   } } 

and subclass of

import javax.ejb.stateless;  @stateless public class resourcebean extends baseresource {   public resourcebean() {     system.out.println(getclass().getname() + " created");   } } 

if these in same module, sessioncontext displayed. in separate modules, sessioncontext null.

you sessioncontext workaround. not answer issue can @ least access sessioncontext.

  public sessioncontext getsessioncontext()   {     try     {       initialcontext ic = new initialcontext();       return (sessioncontext) ic.lookup("java:comp/ejbcontext");     }     catch (namingexception ex)     {       // handle exception     }     return null;   } 

excerpt from: http://javahowto.blogspot.com/2006/06/4-ways-to-get-ejbcontext-in-ejb-3.html


Comments