2012-03-11 3 views
1

임베디드 EJB 컨테이너와 프로덕션 환경에서 사용되는 실제 서버 컨테이너 사이의 명확한 차이점은 무엇입니까?임베디드 EJB 컨테이너와 실제 서버 컨테이너의 차이점

나는 2 개의 바다 생물을 발견 할 수 있습니다.

  1. 예를 들어, glassfish-embedded-static-shell.jar - 구현이 없으며 glassfish 서버의 로컬 설치에 따라 다릅니다.
  2. OpenEJB와 비슷합니다. jar 파일 만 클래스 패스에 추가해야하며 설치는 필요 없습니다.

AFAIK, 둘 다 포함 된 컨테이너라고합니다. 그래서, 그것의 진정한 의미는 무엇입니까?

또한 임베디드 컨테이너에는 EJB 사양에서 지원하는 모든 기능이 있습니까?

답변

4

서버 EJB 컨테이너는 응용 프로그램 서버 응용 프로그램의 일부로 시작되며 대개 응용 프로그램 서버에 포함 된 다른 서비스 및 기술과 더 긴밀하게 통합됩니다. Embeddable EJB 컨테이너는 제어권을 얻을 때 (예 : 클래스에 기본 메소드가 있고 EJB가 있어야하기 때문에) 애플리케이션에서 시작됩니다. 이러한 이유로 임베디드 EJB 컨테이너는 단위 테스트에 편리합니다.

임베드 가능한 EJB 컨테이너는 EJB 사양에서 지원하는 모든 기능을 포함 할 수 있지만 필수는 아닙니다. EJB 3.1 사양의 표 27 (섹션 21.1)은 임베디드 EJB 컨테이너에 필요한 기능을 나열합니다. (클라이언트로 또는 서버)

  • 원격 EJB를 : 특히, 내장 가능한 EJB 컨테이너는 을 지원하는 데 필요하지입니다.
  • 웹 서비스
  • 타이머
  • MDB를하고 엔티티 빈