Home Interface określa metody używane przez zdalnych klientów do lokalizacji, tworzenia i usuwania instancji enterprise bean'a. Home interface musi dziedziczyć po interfejsie EJBHome z pakietu javax.ejb.
package javax.ejb;
public interface EJBHome extends java.rmi.Remote {
EJBMetaData getEJBMetaData()
throws java.rmi.RemoteException;
HomeHandle getHomeHandle()
throws java.rmi.RemoteException;
void remove(Handle handle)
throws java.rmi.RemoteException, javax.ejb.RemoveException;
void remove(Object primaryKey)
throws java.rmi.RemoteException, javax.ejb.RemoveException;
}
Jak widać interfejs EJBHome rozszerza interfejs java.rmi.Remote, co oznacza że EJB jest ściśle zależny od RMI (Remote Method Invocation). Interfejs java.rmi.Remote jest używany do wywoływania metod umieszczonych w zdalnej maszynie wirtualnej Java. Każdy zdalny obiekt musi bezpośrednio lub pośrednio implementować ten interfejs.
Home interface może definiować metody przeznaczone do tworzenia, odnajdywania i usuwania enterprise beana. Metody tworzące i wyszukujące są dodawane do definicji interfejsu; metody usuwające są dziedziczone z interfejsu javax.ejb.EJBHome. Przykład: home interface dla beana Uzytkownik, (interfejs UzytkownikHome) definiujący bezargumentową metodę create:
package pl.webdeveloper.ejb;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
public interface UzytkownikHome extends EJBHome {
Uzytkownik create() throws RemoteException, CreateException;
}
Home interface może definiować wiele przeciążonych metod dla tworzenia (create) i wyszukiwania (find) beanów. Nazwy metod wyszukujących zawsze muszą zaczynać sie od "find". Jednak metody te są opcjonalne i nie wszystkie beany ich potrzebują.