Currently our @EJB.mappedName support allows you to map the reference using the OpenEJB deployment id of the bean (which by default will be the ejb-name, which is itself default of the simple name of the bean class).

We could probably add support so that it could reference a JNDI name as an alternative. Some flag you turn on perhaps.

Just a note that using @EJB.mappedName is not portable and there are other ways to narrow down reference when there is more than one bean that implements a particular business interface. Have you tried using the @EJB.beanName attribute?

-David

On Aug 7, 2009, at 12:32 PM, Mark Taylor wrote:

Hi,

Thanks for the jndi name formatting lower case support.  Now I have
another problem:

When running JUnit tests with OpenEJB in embedded mode, I have many
beans that reference other beans via the @EJB mappedName property.  It
does not appear that OpenEJB 3.1.1 supports this, ie I get the
following error:

WARN  [OpenEJB] Injection data not found in enc:
jndiName='net.mycompany.bean.ComplexBean/myBean', target=class
net.mycompany.bean.ComplexBean/myBean


Is there an option that controls this?  If not, is it be possible to
support the @EJB mappedName property for an injected bean such as:

@Stateless
public class ComplexBean implements ComplexBeanLocal {
  @EJB(mappedName="MyStatelessBean/local")
   MyStatelessBeanLocal mybean;
  ...
}

Where:

@Stateless
public class MyStatelessBean implements MyStatelessBeanLocal {
 ...
}

Thanks,

Mark


Reply via email to