01
학습 목표
: EJB 소개
EJB 2.0 규격을 기준으로 엔터프라이즈 자바 빈즈 기술의 용도 ,
장점 , 특성을 파악합니다 .
Chapter01
EJB 소개
1.EJB 는 도대체 무엇일까 ?
■ 컴포넌트 기반 개발
Chapter01
EJB 소개
2.EJB 에서 얻을 수 있는 것은 무엇일까 ?
■ 여러분은 비즈니스 로직 부분에 집중할 수 있다 .■ 트랜잭션 , 네트워킹 , 보안등은 EJB 서버제작자가 처리해준다 .
Chapter01
EJB 소개
3. 더 이상 제작자한테 얽매이지 않아도 됩니다 .
■ 엔터프라이즈 빈은 이식성이 좋습니다 .■ 다른 JVM 에서 실행 될 뿐 아니라 다른 EJB 서버에서도 잘 실행됩니다 .
Chapter01
EJB 소개
4. 어떤 식으로 작동하나요 ?
■ 여러분이 만든 빈은 EJB 서버의 관리와 보호 하에 실행됩니다 .
■ 클라이언트에서 빈의 메소드를 호출할 때마다 서버가 그 사이에 끼어들면서 보안 , 트랜잭션 , 지속성과 같은 ‘서비스’를 추가합니다 .
Chapter01
EJB 소개
5. 빈의 세가지 유형
■ 엔티티 ● Entity Bean
● 지속성 저장공간 ( 데이터베이스 )
■ 메시지 구동 ● message-driven bean
● JMS 메시징 서비스
■ 세션 ● stateless session bean
● stateful session bean
● 위의 두 가지 케이스를 제외한 모든 용도
Chapter01
EJB 소개
6. 빈을 만들기 위해 해야 할 다섯 가지 작업
1. 비즈니스 메소드가 들어간 빈 클래스 코드 작성
2. 두 인터페이스를 위한 코드 작성
3. XML 배치 기술자 (DD, deployment descriptor) 작성
4. 빈 , 인터페이스 , 배치 기술자를 ejb-jar 에 삽입
5. 서버 제작자 쪽에서 제공한 툴을 이용해 빈을 서버에 배치
Chapter01
EJB 소개
7. 튜토리얼 테스트 환경
■ 왜 J2EE 1.3 RI 를 사용하는가 ?
■ 무료로 사용할 수 있는 서버 중에서 가장 간단한 구조를 가진 서버
■ 각 도구 별로 서로 다른 작업에 대해서 신경을 쓰지 않아도 된다는 점
■ 관련 URL : http://java.sun.com/j2ee/
Chapter01
EJB 소개
9. 튜토리얼 1/13
Step 1. 인터페이스 및 빈 클래스 컴파일
Step 2. 서버를 시작합니다 .
Chapter01
EJB 소개
8. 튜토리얼 프로젝트 디렉토리 구성법
■ 이 번에 소개할 튜토리얼의 디렉토리 구조는 아래와 같다 .
■ Classes 에는 컴파일이 끝난 .class 파일들이 위치
■ Src 에는 java 파일들이 위치
Chapter01
EJB 소개
9. 튜토리얼 2/13
Step 3. Deploytool 을 실행시킵니다
Step 4. 새로운 애플리케이션을 만듭니다
■ File-> New -> application 선택
■ Deploytool 애플리케이션이 로딩됩니다 .
Chapter01
EJB 소개
9. 튜토리얼 3/13
Step 5. 새로운 애플리케이션의 이름을 정하고 저장합니다
Step 6. 애플리케이션의 이름을 지정하고 저장한 다음 화면에 보이는 내용
■ 애플리케이션에 AdviceApp 라는 이름을 붙입니다 .
■ 필요하면 project/advice/AdviceApp 에 대한 전체경로도 입력합니다 .
■ OK 를 클릭합니다 .
■ AdviceApp 아이콘을 클릭합니다 .
Chapter01
EJB 소개
9. 튜토리얼 4/13
Step 7. 이제 새로운 엔터프라이즈 빈 (ejb-jar 와 DD) 을 만들어 봅시다
Step 8. New Enterprise Bean 마법사가 나옵니다
■ File->New->Enterprise Bean… 선택
■ 마법사 핵심기능
•ejb-jar 를 생성합니다 .
•빈 클래스와 두 인터페이스를 ejb-jar 에 집어 넣습니다 .
•빈을 기술하는 배치 기술자를 생성합니다 .
Chapter01
EJB 소개
9. 튜토리얼 6/13
Step 11. JAR 에 들어있는 세 클래스 파일 가운데 어떤 것이 실제 빈 클래스인지 알려줍니다
Step 12. 홈 인터 페이스와 컴포넌트 인터페이스를 지정합니다
■ Enterprise Bean Class 드롭다운 메뉴 클릭
■ headfirst.AdviceBean 선택
■ Remote Home Interface 드롭다운 메뉴 클릭
■ headfirst.AdviceHome 선택
■ Remote Interface 드롭다운 메뉴 클릭
■ headfirst.Advice 선택
Chapter01
EJB 소개
9. 튜토리얼 5/13
Step 9. 디렉토리와 클래스 파일만 들어있는지 확인합니다
Step 10. 무상태 세션 빈으로 지정합니다
■ 클래스 파일이 제대로 들어있는지 확인합니다 .
■ 제대로 들어있지 않으면 Remove 클릭 후 처음부터 다시 시작합니다 .
■ 모두 끝나면 OK 를 클릭한 다음 NEXT 를 클릭합니다 .
■ Session 라디오 버튼 선택
■ Stateless 라디오 버튼 선택
Chapter01
EJB 소개
9. 튜토리얼 7/13
Step 13. 이 화면에 있는 모든 것을 확인해 봅시다
Step 14. 끝났습니다 . Finish 를 클릭하세요
■ Enterprise Bean Class : headfirst.AdviceBean
■ Remote Home Interface : headfirst.AdviceHome
■ Remote Interface : headfirst.Advice
■ Finish 클릭
Chapter01
EJB 소개
9. 튜토리얼 8/13
Step 15. Deplytool 검증기를 통해 빈을 실행시켜 봅시다
Step 16. 눈을 감고 OK 를 클릭합시다
■ Ejb1 아이콘 ( 조그만 병 모양 아이콘 ) 을 클릭해서 역상으로 표시되도록 합니다 .
■ Tools-> Verifier… 선택
■ Failures Only 라디오 버튼을 선택합니다 .
■ OK 클릭
■ Details 의 로그를 확인합니다 .
Chapter01
EJB 소개
9. 튜토리얼 9/13
Step 17. 배치할 때가 됐습니다
Step 18. 클라이언트 jar 를 리턴합니다 .
■ Tools-> Deploy… 선택
■ Stub Class 생성하는 단계
■ Return Client Jar 체크 박스 선택 (projects/advice 디렉토리에 집어 넣음 )
■ Next > 클릭
Chapter01
EJB 소개
9. 튜토리얼 10/13
Step 19. 클라이언트에서 찾을 수 있도록 이름을 부여합니다
Step 20. 이제 서버에 AdviceApp 가 들어있음을 확인할 수 있습니다
■ JNDI Name 칸에 Advisor 라고 입력
■ Finish 클릭
■ 배치 절차가 끝날 때까지 가슴을 졸이며 대기합니다 .
■ ‘Deplyment of AdviceApp is complete’ 메시지를 확인한 후 OK 클릭
■ Server > localhost 아이콘을 확장시키면 AdviceApp 아이콘이 있습니다
Chapter01
EJB 소개
9. 튜토리얼 11/13
Step 21. 이제 클라이언트만 있으면 됩니다 .
■ 클라이언트의 다섯 가지 해야 할 일
1. JNDI InitialContext 에 대한 레퍼런스를 받는다 .
2. InitialContext 를 써서 빈의 홈 인터페이스를 룩업한다 .(Advisor)
3. 룩업 과정을 통해서 받게 되는 것을 좁히고 캐스트 합니다 .
4. 홈 인터페이스의 create 를 호출하여 컴포넌트 인터페이스에 대한 레퍼런스를 가져옵니다 .
5. 컴포넌트 인터페이스의 getAdvice() 를 호출한 다음 그 결과를 출력합니다 .
Chapter01
EJB 소개
9. 튜토리얼 12/13
Step 22. 클라이언트를 위한 프로젝트 디렉토리 구성법
■ 배치할 때 서버에서 넘겨준 클라이언트 jar(AdviceAppClient.jar)
Chapter01
EJB 소개
9. 튜토리얼 13/13
Step 23. 클라이언트를 컴파일합니다
Step 24. 클라이언트를 실행시킵시다 !