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