엔터프라이즈 빈 클래스
- 원격 인터페이스의 비지니스 메소드를 실제로 구현하는 클래스이다.
- javax.ejb.EnterpriseBean를 상속한 javax.ejbSessionBean 인터페이스 또는 javax.ejb.EntityBean 인터페이스 또는 javax.ejb.MessageDrivenBean 인터페이스를 implements 한다.
- 엔터프라이즈 빈은 홈 인터페이스에서 정의된 메소드에 상응하는 콜백 메소드를 구현한다.
(홈 인터페이스에서 정의한 메소드를 직접 엔터프라이즈 빈에서 구현하지는 않고 홈 인터페이스에서 정의된 원격 메소드를 엔터프라이즈 빈 클라이언트가 호출하게 되면 EJB 컨테이너가 콜백으로 실제 엔터프라이즈 빈 인스턴스의 메소드를 호출하게 되는데, 콜백 메소드란 홈 인터페이스의 원격 메소드에 상응하는 콜백 메소드가 EJB 컨테이너가 홈 인터페이스에서 정의한 원격 메소드 호출에 대한 결과로 호출하게 되는 엔터프라이즈 빈의 메소드를 말하는 것이다.)
(엔터프라이즈 빈 클라이언트 -> 메소드 호출 -> EJB 컨테이너의 엔터프라이즈 빈 인스턴스 메소드 호출 -> 클라이언트에 전달)
- 원격 인터페이스에서 정의한 메소드의 시그너쳐와 리턴 타입이 동일하여야 하며 동일한 Exception을 throws한다.
- 디폴트 생성자를 반드시 가져야 한다.
(개발자가 직접 생성하지 않는다.)
(ex)
Class ejb = Class.forName("com.scourge.ejb.MyBean");
// 현재의 ClassLoader를 사용하여 메모리에 로드
MyBean bean = (ejb.scourge.ejb.MyBean)ejb.newInstance();
// 디폴트 생성자 호출
- 예)
import java.rmi.Remote;
import javax.ejb.SessionBean;
import javax.ejb.EJBException;
import javax.ejb.CreateException;
import javax.ejb.SessionContext;
public class HelloBean implements SessionBean {
public HelloBean() {
System.out.println("constructor..");
}
public void ejbCreate() throws RemoteException, CreateException {
System.out.println("ejbCreate() Called");
}
public String sayHello(String name) throws RemoteException {
return "Hello " + name + "!!";
}
public void ejbActivate() throws RemoteException, EJBException {
}
public void ejbPassivate() throws RemoteException, EJBException {
}
public void setSessionContext(SessionContext ctx) throws RemoteException,
EJBException {
System.out.prinln("HelloEJB instance create..");
}
public void ejbRemove() throws RemoteException, EJBException {
}
}
댓글 없음:
댓글 쓰기