= ejb-local-ref
:index-group: EJB
:jbake-date: 2018-12-05
:jbake-type: page
:jbake-status: published

= Via annotation

Usable by EJB, Interceptor, Servlet, Filter, or Listener

[source,java]
----
package org.superbiz.refs;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.naming.InitialContext;

@Stateless
@EJB(name = "myFooEjb", beanInterface = FooLocal.class)
public class MyEjbLocalRefBean implements MyBeanInterface {

    @EJB
    private BarLocal myBarEjb;

    public void someBusinessMethod() throws Exception {
        if (myBarEjb == null) throw new NullPointerException("myBarEjb not injected");

        // Both can be looked up from JNDI as well
        InitialContext context = new InitialContext();
        FooLocal fooLocal = (FooLocal) context.lookup("java:comp/env/myFooEjb");
        BarLocal barLocal = (BarLocal) context.lookup("java:comp/env/org.superbiz.refs.MyEjbLocalRefBean/myBarEjb");
    }
}
----

= Via xml

The above `@EJB` annotation usage is 100% equivalent to the following xml.

[source,xml]
----
<ejb-local-ref>
  <ejb-ref-name>myFooEjb</ejb-ref-name>
  <local>org.superbiz.refs.FooLocal</local>
</ejb-local-ref>

<ejb-local-ref>
  <ejb-ref-name>org.superbiz.refs.MyEjbLocalRefBean/myBarEjb</ejb-ref-name>
  <local>org.superbiz.refs.BarLocal</local>
  <injection-target>
    <injection-target-class>org.superbiz.refs.MyEjbLocalRefBean</injection-target-class>
    <injection-target-name>myBarEjb</injection-target-name>
  </injection-target>
</ejb-local-ref>
----
