Key Differences Between EJB2 and EJB3

Syntax differences for jndiName attribute

The jndiName attribute of the @SessionEJB3Control.EJBLookup annotation requires a reference to the JNDIName followed by a # sign and the business interface.

@SessionEJB3Control.EJBLookup(jndiName = "jndiName#businessInterface")

Note that the session bean author can override the jndiName by using the mappedName attribute on the @javax.ejb.Stateless annotation. For example, suppose suppose the bean author provides the following EJB3 session bean.

    @javax.ejb.Stateless(mappedName="beans.HelloBean")
    public class HelloBean implements Hello { ... }

A control targeting this bean would have the following syntax.

    @ControlExtension
    @SessionEJB3Control.EJBLookup(jndiName = "beans.HelloBean#beans.Hello")
    public interface Hello30SLSBControl extends Hello, SessionEJB3Control { ... }

Note the difference from the EJB2 control lookup syntax, which requires only a reference to the JNDIname.

    jndiName = "beans.HelloBean"

 

Related Topics

EJB 3.0 Metadata Annotations Reference

@SessionEJB3Control.EJBLookup

@javax.ejb.Stateless


Still need help? Post a question to the Workshop newsgroup.