EJB

SESSION Bean

Ethelnoth 2008. 3. 3. 13:16

작성과정

1. 원격 인터페이스 , 홈 인터페이스 , 빈 클래스 작성

2. Compile

3. 배치 디스크립터 작성

4. JAR 압축

5. Deploy

 

 

  - 원격 인터페이스

  : javax.ejb.EJBObject 나 javax.ejb.EJBLocalObject 를 상속 받는다.

   클라이언트가 호출 할 비지니스 메소드를 정의함

 

   웹로직 서버 한대일때는 EJBLocalObject ( RMI 사용하지 않음 ) 상속받는 것이 좋다.

 

   example)

package ejb.example;

 

import javax.ejb.EJBObject;

import java.rmi.RemoteException; // EJBObject 의 경우만

 

public interface Example extends EJBObject {

    public String Example() throws RemoteException;

}

 

  - 홈 인터페이스

  : javax.ejb.EJBHome 이나 javax.ejb.EJBLocalHome 을 상속 받는다.

   빈 클래스를 생성 , 검색 , 삭제 할 수 있는 메소드를 선언

 

   example)

package ejb.example;

 

import java.rmi.RemoteException;

import javax.ejb.CreateException;

import javax.ejb.EJBHome;

 

public interface ExampleHome extend EJBHome {

    public Example create() throws CreateException , RemoteException;

}

 

  - 빈 클래스

  : 세션 빈의 경우에는 javax.ejb.SessionBean 인터페이스를 구현

   원격 인터페이스에서 선언한 비지니스 메소드를 실질적으로 구현

   EJB 클래스는 원격 인터페이스를 구현하지 않는다.

   * 원격인터페이스 , 홈 인터페이스를 구현하지 않는다.

 

   example)

package ejb.example;

 

import javax.ejb.SessionBean;

import javax.ejb.SessionContext;

 

public class ExampleBean implements SessionBean {

 

    private SessionContext ctx;

 

    public void setSessionContext ( SessionContext c ) {

        ctx = c;

    }

 

    public String Example() {

        return " Bean Class";

    }

 

    public void ejbCreate() {}

    public void ejbRemove() {}

    public void ejbActivate() {}

    public void ejbPassivate() {}

}

 

 

* WEBLogic 의 경우

1. Build 후 WEBLogic 에서 folder OPEN

2. Bean 항목 확인 후 JNDI 명 확인

3. Classes 탭에서 Bean, Home, Remote 확인

4. Save

 

* JSP 에서 호출

<%@ page contentType = "text/html;charset=UTF-8" %>

<%@ page import = "javax.rmi.*" %>

<%@ page import = "javax.naming.*" %>

<%@ page import = "javax.transaction.*" %>

 

<html>

<head>

</head>

<body>

<%

    context ctx = null;

 

    try{

        ctx = new InitialContext();

        Object h = ctx.lookup("ExampleBean");

        ExampleHome home = ( ExampleHome ) PortableRemoteObject.narrow( h, ExampleHome.class );

        Example exp = home.create();

        out.println( exp.example() );

    }

    catch ( Eception e ) {

        out.println( e.toString() );

    }

%>

</body>

</html>

'EJB' 카테고리의 다른 글

EJB 유형  (0) 2008.03.03