EJB(Enterprise JavaBeans)
모듈을 배치하는 경우, 배치된 모듈을 지원하도록 구성된 서버에 이 모듈을 설치하십시오.
시작하기 전에
하나 이상의 EJB 모듈을 어셈블하고 하나 이상의 웹 모듈을 어셈블한 후,
이를 Java™ EE 애플리케이션에 어셈블하십시오.
EJB 3.x용 EJB 배치 모델 변경사항에 대한
개요는 EJB 3.x 배치 개요 주제를 참조하십시오.
프로시저
- 배치 환경을 준비하십시오. 애플리케이션 호스트 준비 주제를 참조하십시오.
- 배치 환경의 필요에 따라 각 EJB 모듈에 대한
구성을 업데이트하십시오.
- 필수: 모듈이 Java 5 특정 확장(예: 일반, 어노테이션 등)에
종속된 경우, 모듈 또는 모듈이 포함된 애플리케이션을 설치하기 전에
EJBDeploy 명령행 도구를 개별적으로 실행해야 합니다. 이는 관리
콘솔과 wsadmin 명령행 도구가 ejbdeploy -complianceLevel
5.0 옵션 지정을 허용하지 않기 때문입니다.
EJBDeploy 도구는 엔티티 Bean이 포함된 EJB 2.1 모듈에만 실행하면 됩니다.
- 잠재적 상호운영성 문제를 해결하십시오.
EJB 3.x를 지원하지 않는 Application Server 버전에서 실행되는 WebSphere®
스택 제품 또는 다른 제품이 EJB 3.x를 지원하는 Application Server 버전에서 실행되는 별도의 서버에 있는 EJB 3.x 준수 엔터프라이즈 Bean에 대한
메소드를 원격으로 호출하려는 경우 예상치 못한 결과가 발생할 수 있습니다.
이러한 제품이 엔터프라이즈 Bean의 EJB 3.x 원격 비즈니스 인터페이스를 통해 메소드를 호출하려고 시도하는 경우,
EJB 3.x를 준수하지 않는 환경으로 다시 푸시되는, EJB 3.x에서 도입된 예외가 발생할 수 있습니다.
이 시나리오는 애플리케이션 서버의 EJB 3.x 준수 및 비준수 인스턴스가 혼합되어 있는 스택 제품의
조합이 있는 환경의 관리자에게도 문제가 될 수 있습니다.
다음은 EJB 3.0에서 발생하는 예외 클래스 목록입니다.
- javax.ejb.ConcurrentAccessException
- javax.ejb.EJBAccessException
- javax.ejb.EJBTransactionRequiredException
- javax.ejb.EJBTransactionRolledbackException
- javax.ejb.NoSuchEJBException
- 애플리케이션 서버가 7.0.0.3으로 업데이트되었는지 확인하십시오.
- 수동으로 <app_server_root>/runtimes/ejb3exceptions.jar 파일을
애플리케이션 서버에서 EJB 3.x 클라이언트로 사용할 각 스택 제품 설치 또는 기타 제품 설치의 디렉토리로 복사하십시오.
- ejb3exceptions.jar 파일이 포함된 디렉토리가 클래스 경로에 있는지 확인하십시오. 이 요구사항을 충족시키는 JAR 파일의 가능한 위치 중 하나는 EJB 3.x 비준수 서버에 있는
<app_server_root>/lib 디렉토리입니다.
문제점 방지: 업데이트가 있는 경우, EJB Thin 클라이언트 jar와 마찬가지로 사용자는
업데이트된 버전이 있는 WebSphere Application Server 버전을 설치한 후
ejb3exceptions.jar 파일을 다시 복사해야 합니다.
gotcha
- 애플리케이션를 배치하십시오. 엔터프라이즈 애플리케이션 배치 및 관리 주제를 참조하십시오.
다음에 수행할 작업
애플리케이션 설치 중 EJBDeploy 배치 도구가 실행되도록 지정했는데
NameNotFoundException 메시지와 함께 설치가 실패한 경우, 입력 Java
아카이브(JAR) 또는 엔터프라이즈 아카이브(EAR) 파일에 소스 파일이 포함되지
않았는지 확인하십시오. 소스 파일을 제거하거나
클래스 경로의 모든 종속 클래스 및 자원 파일을
포함하십시오. 입력 JAR 또는 EAR 파일에 소스 파일이 있을 경우, EJB 배치 도구는 배치 코드를 생성하기
전에 재빌드를 실행합니다.
모듈이 성공적으로 배치되면, 모듈을 테스트하고
디버그하십시오. 문제점 진단(진단 도구 사용) 주제를 참조하십시오.