EJB 1.1에서 EJB 2.x로 변환된 프로젝트의 경우 기존 EJB 1.1
코드를 EJB 2.x로 마이그레이션하려면 단계를 수행해야 합니다.
이 태스크 정보
참고: EJB 2.x Bean은 EJB 2.x 프로젝트에서만 지원됩니다(2.x 프로젝트에서는
1.1 Bean도 지원함).
- CMP 1.1 Bean의 경우 각 CMP 필드를 추상 getXXX 및 setXXX 메소드로 바꾸십시오.
(Bean 클래스는 추상이어야 합니다.)
- CMP의 경우 1차 키에 대해 추상 getXXX 및 setXXX 메소드를
작성하십시오.
- CMP 1.1 파인더 메소드의 경우 각 파인더 메소드에 대해 EJBQL(EJB
조회 언어) 메소드를 작성하십시오.
참고: 버전 8.5.x
에서는 EJB 조회 언어에 다음과 같은 제한사항이 있습니다.
- 다른 EJB에 대한 관계로 구성된 키를 갖는 EJB와 관련된 EJB 조회 언어 조회가
올바르지 않은 것으로 표시되며 배치 시에 오류를 발생시킵니다.
- IBM® EJB
조회 언어 지원은 일부 제한사항을 완화하고 DB2®
기능을 추가하는 등 다양한 방법으로 EJB 2.x 스펙을 확장합니다.
다양한 벤더 데이터베이스 또는 EJB 배치 도구 사이의 이식성이 중요한 경우
EJB 2.x 스펙의 제 11 장에 설명된 지시사항을 엄격하게 준수하여 모든 EJB
조회 언어 조회를 주의해서 작성해야 합니다.
- CMP 1.1 파인더의 경우 java.util.Enumeration 대신 java.util.Collection을 리턴합니다.
- CMP 1.1 Bean의 경우 ejbCreate() 및 코드 전체에서 this.field = value의 모든 발생을
setField(value)로 변경하십시오.
- 비애플리케이션 예외에 대한 예외 처리(롤백 동작) 업데이트:
- java.rmi.RemoteException 대신 javax.ejb.EJBException을
처리하여 비애플리케이션 예외를 보고하십시오.
- EJB 2.x 및 1.1의 경우 인스턴스에 의해 예외 처리된 모든
비애플리케이션 예외로 인해 인스턴스가 실행된 트랜잭션이 롤백되고
이 인스턴스는 버려집니다.
- 애플리케이션 예외에 대한 예외 처리(롤백 동작) 업데이트:
- EJB 2.x 및 1.1에서는 애플리케이션 예외로 인해 컨테이너가 트랜잭션을
자동으로 롤백하지 않습니다.
- EJB 1.1에서는 인스턴스가 EJBContext 오브젝트에서 setRollbackOnly()
메소드를 사용하여 호출된 경우에만 컨테이너가 롤백을 수행합니다.
- 애플리케이션 특정 기본값의 CMP 설정이 ejbCreate 내부에 있도록
업데이트하십시오(EJB 1.1 컨테이너는 이전 애플리케이션 특정 기본값을 겹쳐쓰는
ejbCreate를 호출하기 전에 모든 필드를 일반적인 기본값으로 설정하기 때문에
글로벌 변수를 사용하지 않음).