EJB 개발 자원

이 주제에서는 주로 EJB 2.x 개발에서 사용되는 자원 및 개발 도구에 대해 설명합니다.
EJB 모듈

EJB 모듈을 사용하여 하나 이상의 엔터프라이즈 Bean을 단일 배치 가능한 유닛으로 어셈블합니다.

EJB 모듈은 Java™ EE 퍼스펙티브의 엔터프라이즈 탐색기 보기에 표시되며 EJB 프로젝트에 해당합니다. EJB 프로젝트에서 EJB 모듈을 개발하고 독립형 EJB JAR 파일로 모듈을 내보내거나 모듈을 엔터프라이즈 애플리케이션의 다른 EJB 또는 웹 모듈과 결합할 수 있습니다. EJB JAR 파일은 표준 Java 아카이브 파일의 형식을 사용합니다. EJB 모듈에는 다음의 내용이 있습니다.

  • 하나 이상의 엔터프라이즈 Bean 및 연관된 .class 및 .java 파일
  • 엔터프라이즈 Bean의 필요에 따라 다른 그래픽 및 기타 파일
  • 배치 디스크립터. 배치 디스크립터의 파일 유형은 XML(Extensible Markup Language)입니다. 이 파일은 EJB 모듈의 컨텐츠를 선언하고 모듈에서 Bean의 구조를 정의하고 런타임에 Bean의 사용 방식에 대한 설명을 제공합니다.
  • META-INF 디렉토리의 MANIFEST.MF 파일. Manifest 파일에는 Java EE 엔터프라이즈 애플리케이션의 다른 JAR 파일 또는 EJB 모듈과 관련된 클래스 경로 항목이 포함될 수 있습니다. 이 항목은 모듈의 외부 종속성을 정의합니다.
  • 대상 런타임 컨테이너가 WebSphere® Application Server인 경우 표준 배치 디스크립터의 IBM® 확장기능.
참고: EJB 모듈의 EJB 클라이언트 JAR 파일을 작성하도록 선택한 경우 엔터프라이즈 Bean의 클라이언트 인터페이스 클래스는 EJB JAR 파일에 없고 EJB 클라이언트 JAR 파일에 있습니다.
EJB 프로젝트

EJB 프로젝트는 특수 Java 프로젝트입니다. Java 프로젝트와 마찬가지로 EJB 프로젝트에는 프로젝트의 소스 및 출력 파일을 저장할 하나 이상의 소스 폴더가 있어야 합니다. 기본적으로 소스 폴더의 이름은 ejbModule이지만 프로젝트 또는 새 소스 폴더를 작성할 때 이름을 변경할 수 있습니다. 프로젝트를 공개하거나 배치할 때 폴더의 컨텐츠를 집계합니다.

Workbench에서는 프로젝트의 엔터프라이즈 애플리케이션에 대한 자원을 작성하고 유지보수합니다. EJB 프로젝트는 엔터프라이즈 Bean을 구성하는 데 사용할 수 있는 논리 모듈입니다. 엔터프라이즈 탐색기 보기에서 EJB 프로젝트는 EJB 모듈로 표시됩니다.

Workbench는 EJB 1.1, EJB 2.0, EJB 2.1 및 EJB 3.0 프로젝트를 지원합니다. 포함하는 EAR 프로젝트의 스펙 레벨은 EJB 2.0 프로젝트의 경우 1.3 이상으로 설정해야 하고 EJB 2.1 프로젝트의 경우 1.4로 설정해야 합니다. EJB 1.1 프로젝트에서는 EJB 1.1 Bean만을 작성할 수 있습니다.

참고: EJB 모듈의 EJB 클라이언트 JAR 파일을 작성하도록 선택한 경우 엔터프라이즈 Bean의 클라이언트 인터페이스 클래스가 개별 EJB 클라이언트 JAR 프로젝트에 포함됩니다.
EJB 클라이언트 프로젝트

EJB 도구는 EJB 모듈의 EJB 클라이언트 JAR 프로젝트 작성을 지원합니다. EJB 클라이언트 JAR 프로젝트에는 클라이언트 프로그램이 EJB 프로젝트에 있는 엔터프라이즈 Bean의 클라이언트 보기를 사용하는 데 필요한 모든 인터페이스 클래스가 있습니다. EJB 클라이언트 프로젝트는 EJB 프로젝트가 속한 각 모듈에 프로젝트 유틸리티 JAR 파일로 추가됩니다.

기본적으로 마법사를 사용하여 EJB 프로젝트를 작성하는 경우 EJB 클라이언트 JAR 프로젝트도 작성됩니다. 그러나 마법사에서 이 옵션을 선택 취소할 수 있습니다.

팁: 모듈로 EJB 프로젝트가 들어 있지 않은 다른 엔터프라이즈 애플리케이션에 EJB 클라이언트 프로젝트를 추가할 수도 있습니다. 이 경우 애플리케이션을 내보낼 때 EJB 클라이언트 JAR 파일을 내보내어 EAR 파일과 함께 패키지로 작성합니다.
엔터프라이즈 Bean

엔터프라이즈 Bean은 기타 자원과 결합하여 분산 클라이언트/서버 애플리케이션을 작성할 수 있는 Java 컴포넌트입니다.

엔터프라이즈 Bean에는 엔티티 Bean, 세션 Bean 및 메시지 구동 Bean과 같은 세 가지 유형이 있습니다. 일반적으로 엔터프라이즈 애플리케이션에서 모든 유형의 Bean을 함께 사용합니다.

엔티티 Bean
엔티티 Bean은 영구 데이터를 저장합니다. CMP(Container-Managed Persistence)를 사용하는 엔티티 Bean은 데이터베이스 연결이 필요합니다. BMP(Bean-Managed Persistence)를 사용하는 엔티티 Bean은 Bean 코드에 정의된 방식에 관계없이 영구 데이터를 관리합니다. 여기에는 예를 들어, 데이터베이스 또는 XML 파일에 대한 쓰기가 포함될 수 있습니다.
세션 Bean
세션 Bean은 데이터베이스 액세스 권한이 필요하지 않지만 엔티티 Bean에 액세스하여 간접적으로 권한을 확보할 수 있습니다(필요한 경우). 세션 Bean은 자원 참조를 사용하여 데이터베이스(및 기타 자원)에 대한 직접 액세스 권한을 받을 수도 있습니다.
메시지 구동 Bean
메시지 구동 Bean은 JMS 메시지 전달 시스템에서 메시지 이용자의 역할을 담당하는 특수 유형의 엔터프라이즈 Bean입니다. 표준 JMS 메시지 이용자와 마찬가지로 메시지 구동 Bean은 메시지 컨텐츠에 따라 비즈니스 로직을 수행합니다. 여러 가지 면에서 메시지 구동 Bean 인스턴스의 동적 작성 및 할당은 Stateless 세션 엔터프라이즈 Bean의 동작을 그대로 따릅니다. 그러나 메시지 구동 Bean은 두 가지 면에서 Stateless 세션 엔터프라이즈 Bean(및 기타 유형의 엔터프라이즈 Bean)과 다릅니다.
  • 메시지 구동 Bean은 일련의 메소드 호출 시퀀스를 처리하지 않고 여러 JMS 메시지를 비동기식으로 처리합니다.
  • 메시지 구동 Bean에는 홈 또는 원격 인터페이스가 없으므로 내부 또는 외부 클라이언트에서 직접 액세스할 수 없습니다.

데이터 액세스가 필요한 Bean은 데이터베이스 연결 풀을 정의하는 관리 자원인 데이터 소스를 사용합니다.

배치 디스크립터

배치 디스크립터에는 런타임 환경이 애플리케이션에 사용하는 구성 데이터가 있습니다. 배치 디스크립터에 다음에 대한 정보가 포함될 수 있습니다.

  • 애플리케이션의 구조 및 컨텐츠(예: 엔터프라이즈 Bean).
  • 내부 및 외부 종속성에 대한 참조. 예를 들어, EJB 모듈의 엔터프라이즈 Bean에는 동일한 모듈에 번들되지 않은 다른 엔터프라이즈 Bean이 필요할 수 있습니다.
  • 자원 팩토리 오브젝트에 대한 참조(예: URL 또는 JDBC 데이터 소스).
  • 애플리케이션의 필수 액세스 제어 구현 시 컨테이너가 사용하는 보안 역할.
  • 컨테이너가 애플리케이션의 트랜잭션을 관리하는 방식 및 여부에 대한 트랜잭션 정보.

배치 디스크립터는 Java 아카이브 파일에서 애플리케이션의 파일과 패키지로 제공되는 XML 파일입니다. EJB 배치 디스크립터를 ejb-jar.xml이라고 하며 EJB 프로젝트의 META-INF 폴더에 있습니다. Java EE 애플리케이션에는 애플리케이션을 전체적으로 제어하는 하나의 애플리케이션 레벨 배치 디스크립터가 있습니다. 애플리케이션의 각 모듈마다 하나씩 여러 개의 컴포넌트 레벨 배치 디스크립터도 있습니다.

표준 배치 디스크립터 외에 Workbench에는 WebSphere Application Server 바인딩 및 확장기능에 대한 정보도 있습니다. 바인딩 및 확장기능 문서는 IBM에만 해당합니다. 바인딩 및 확장기능 디스크립터는 각각 XMI 파일 ibm-ejb-jar-bnd.xmi 및 ibm-ejb-jar-ext.xmi에 저장됩니다. 바인딩 정보는 외부 종속성 또는 자원의 논리 이름을 실제 JNDI 이름에 맵핑합니다. 예를 들어, 컨테이너는 바인딩 정보를 사용하여 설치 시 원격 Bean을 찾습니다. 확장기능은 표준 디스크립터에 추가됩니다. 확장기능을 사용하면 이전(레거시) 시스템을 WebSphere Application Server 환경에서 작동할 수 있습니다. 또한 벤더마다 다르거나 현재 스펙에 정의되어 있지 않거나 이후 스펙에 포함될 것으로 예상되는 애플리케이션 동작을 지정하는 데 사용됩니다.

문서 맵핑

맵핑 편집기는 엔터프라이즈 Bean을 데이터베이스에 맵핑하는 데 유용합니다. map.mapxmi 파일에 이러한 맵핑 정보가 있습니다.


피드백