Java EE 환경에서 JPA 애플리케이션 어셈블
JPA(Java™ Persistence API)에서 작동할 애플리케이션을 개발하고 구성했습니다. 이제 사용자 환경에 맞게 JPA 애플리케이션을 패키징해야 합니다.
이 태스크 정보
프로시저
애플리케이션을 패키징하십시오. Java EE 환경에서
JPA를 사용하는 애플리케이션에는 여러 가지 패키징 옵션이 있습니다. 애플리케이션
모듈에서의 JPA 사용법과 구성에 가장 적합한 패키징 옵션을
선택하십시오. 해당 옵션은 가장 일반적인 패키징 옵션 중 일부입니다.
최종적인 패키징 옵션 목록은 Java Persistence API 스펙을 참조하십시오.
참고: IBM® Optim™ PureQuery
Runtime, persistence_unit_name.pdqxml 파일을 JPA
애플리케이션 JAR 파일에 추가하십시오. 파일은 persistence.xml 파일이
위치하는 동일한 META-INF 디렉토리에 위치합니다. 이들
지속성 파일은 개발 태스크 중에 작성되었습니다. 자세한 정보는
'Java EE 환경에 대한 JPA 애플리케이션 개발' 주제를
참조하십시오.
- 독립형 EJB(Enterprise JavaBeans) 모듈이나
독립형 애플리케이션 클라이언트 모듈의 경우, 표준 JAR(Java archive)
파일에 EJB 및 애플리케이션 클라이언트 모듈을 패키징하십시오. 다음 상태를
갖는 애플리케이션을 패키징하는지 확인하십시오.
- JAR 파일은 EJB 클래스 파일 또는 애플리케이션 클라이언트에 대한 Java 클래스 파일을 포함해야 합니다.
- 아카이브의 META-INF 디렉토리는 사용자의 persistence.xml 파일을 포함해야 합니다.
- 애플리케이션이 맵핑 파일, orm.xml 또는 사용자 정의 맵핑 파일을 사용하는 경우 JAR 파일은 해당 파일도 포함해야 합니다. orm.xml 파일의 위치가 지속성 단위에서 지정되지 않은 경우, 기본 위치는 JAR 파일의 META-INF 디렉토리입니다.
- 애플리케이션 개발 시 어노테이션 프로세서에서 생성한 기준 메타 모델 클래스 파일은 엔티티 클래스 파일과 동일한 위치에 있는 JAR 파일에 포함되어야 합니다.
- 독립형 웹 모듈의 경우, 애플리케이션을 표준 웹 애플리케이션
아카이브(WAR) 파일로 패키징하십시오. 다음 상태를 갖는
애플리케이션을 패키징하는지 확인하십시오.
- 애플리케이션 개발 중에 어노테이션 프로세서에서 생성한 기준 메타 모델 클래스 파일은 엔티티 클래스 파일과 동일한 위치에 있는 WAR 파일에 포함되어야 합니다.
- WAR 파일에는 웹 애플리케이션 클래스 파일이 포함되어야 합니다. 웹 애플리케이션 클래스 파일은 WEB-INF/classes 디렉토리 또는 WAR 파일의 WEB-INF/lib 디렉토리에 위치하는 JAR 파일에 포함되어야 합니다.
- persistence.xml 파일은 WEB-INF/classes/META-INF 디렉토리 또는 사용자 WAR 파일의 WEB-INF/lib 디렉토리에 포함되는 JAR 파일의 META-INF 디렉토리에 포함되어야 합니다.
- 애플리케이션이 맵핑 파일, orm.xml 또는 사용자 정의
맵핑 파일을 사용하는 경우 WAR 파일도 해당 파일을 포함해야 합니다.
맵핑 파일은 WEB-INF/classes 디렉토리 또는
WAR 파일의 WEB-INF/lib 디렉토리 안에 있는 JAR 파일에 상주할 수 있습니다. 맵핑 파일의 위치를 지정하려면 persistence.xml
파일의 <mapping-file> 요소를 사용하십시오. 예를 들어 다음과 같습니다.
<mapping-file>META-INF/JPAorm.xml</mapping-file>
- 하나 이상의 모듈이 포함된 엔터프라이즈 애플리케이션의
경우 애플리케이션을 표준 EAR(Enterprise Application Archive) 파일에
패키징하십시오. 엔터프라이즈 애플리케이션이 하나 이상의 EJB 모듈, 웹 모듈
또는 애플리케이션 클라이언트 모듈을 포함할 수 있습니다. 다음 상태를
갖는 애플리케이션을 패키징하는지 확인하십시오.
- 여러 모듈이 동일한 지속 단위를 사용하는 경우, 지속성 아카이브를 작성하고 EAR 파일 내에 지속성 아카이브를 패키징할 수 있습니다.
- 엔티티 클래스, 연관된 기준 메타 모델 클래스, 모든 필요한 지원 클래스, persistence.xml 파일 및 추가 맵핑 파일을 지속성 아카이브 파일에 포함하십시오. persistence.xml 파일 및 맵핑 파일의 위치에 대해서는 EJB 및 애플리케이션 클라이언트 모듈의 패키징 규칙을 따르십시오.
- 지속성 아카이브를 사용하는 각 모듈은 META-INF/MANIFEST.MF
파일에 클래스 경로 항목을 가져야 합니다.
다음은 Manifest 파일 예제입니다.
Manifest-Version: 1.0 Class-Path: MyJPAEntities.jar
- 모듈이 개별 지속 단위를 사용하고 엔티티 클래스를 공유하는 경우, 지속 아카이브에 엔티티 클래스를 패키징하고 각 모듈에 대해 서로 다른 persistence.xml 파일과 맵핑 파일을 지정할 수 있습니다. 모듈이 엔티티 클래스나 지속성 구성을 공유하지 않는 경우, 각 모듈을 독립형 EJB 모듈, 독립형 애플리케이션 클라이언트 모듈 또는 독립형 웹 애플리케이션 아카이브로 패키징한 후 이들을 EAR 파일에 패키징하십시오.