Reference and Injection Types

The first half of this chapter focused on the semantics of the JNDI ENC and how to reference things within it. You learned the base semantics of both annotation and XML injection. This section dives into the various services and configurations you can reference from your ENC. Other chapters within this book have touched briefly on most of these injectable and referenceable types, but this chapter groups all of it into one place and discusses the intricacies and dirty details.

EJB References

As you saw earlier in this chapter, your EJB bean classes can reference and aggregate other EJBs either through JNDI ENC lookups or by directly injecting these references into member fields.

@javax.ejb.EJB

The @javax.ejb.EJB annotation can be used on your bean class’s setter methods, on member fields, or directly on the class itself:

package javax.ejb;

@Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
public @interface EJB {
   String name( ) default "";
   String description( ) default "";
   Class beanInterface( ) default Object.class;
   String beanName( ) default "";
   String mappedName( ) default "";
   String lookup( ) default "";
}

The name() attribute refers to what the JNDI ENC name will be for the referenced EJB. This name is relative to the java:comp/env context.

The beanInterface() attribute is the interface you are interested in and usually is used by the container to distinguish whether you want a remote or local reference to the EJB. If your EJB needs to be integrated with ...

Get Enterprise JavaBeans 3.1, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.