Sun Java System Application Server Platform Edition 8.1 2005Q2 Update 2 Upgrade and Migration Guide

- Previous: EJB 2.0 Container-Managed Persistence (CMP)
- Next: Recap on Using EJB JNDI References

## Declaring EJBs in the JNDI Context

In Sun Java System Application Server 8.1, EJBs are systematically mapped to the JNDI sub-context ejb/. If we attribute the JNDI name Account to an EJB, then Sun Java System Application Server 8.1 will automatically create the reference ejb/Account in the global JNDI context. The clients of this EJB will therefore have to look up ejb/Account to retrieve the corresponding home interface.

Let us examine the code for a servlet method deployed in Sun ONE Application Server 6.x.

The servlet presented here calls on a stateful session bean, BankTeller, mapped to the root of the JNDI context. The method whose code we are considering is responsible for retrieving the home interface of the EJB, so as to enable a BankTeller object to be instantiated and a remote interface for this object to be retrieved, in order to make business method calls to this component.

    /**
       * Look up the BankTellerHome interface using JNDI.
       */
    private BankTellerHome lookupBankTellerHome(Context ctx)
          throws NamingException
    {
        try
        {
          Object home = (BankTellerHome) ctx.lookup("ejb/BankTeller");
          return (BankTellerHome) PortableRemoteObject.narrow(home,
    	              BankTellerHome.class);
        }
        catch (NamingException ne)
        {
          log("lookupBankTellerHome: unable to lookup BankTellerHome" +
              "with JNDI name ’BankTeller’: " + ne.getMessage() );
          throw ne;
        }
    }

As the code already uses `ejb/BankTeller` as an argument for the lookup, there is no need for modifying the code to be deployed on Sun Java System Application Server 8.1.

- Previous: EJB 2.0 Container-Managed Persistence (CMP)
- Next: Recap on Using EJB JNDI References

- © 2010, Oracle Corporation and/or its affiliates