국제화 유형
모든 서버 애플리케이션 컴포넌트에는 호출 국제화 컨텍스트가 컴포넌트 또는 호스팅되는 Java™ EE 컨테이너에서 관리되는지 여부를 표시하는 국제화 유형 설정이 있습니다.
- AMI(Application-managed internationalization)
- CMI(Container-managed internationalization)
서버 컴포넌트는 AMI 또는 CMI로 배치될 수 있지만 모두는 아닙니다. CMI가 기본값입니다. 설정은 모든 호출의 전체 컴포넌트에 적용됩니다. 엔티티 Bean은 CMI만을 사용합니다. EJB(Enterprise JavaBeans) 클라이언트 애플리케이션에는 국제화 유형 설정이 없습니다. 내재적으로 AMI를 사용합니다.
AMI(Application-managed internationalization)
AMI 배치 정책에서 컴포넌트 개발자는 호출 국제화 컨텍스트에 대해 전체 제어된다고 가정합니다. AMI 컴포넌트는 국제화 컨텍스트 API를 사용하여 프로그래밍 방식으로 호출 컨텍스트 요소를 설정할 수 있습니다.
AMI 컴포넌트는 호출 컨텍스트를 관리할 것으로 예상합니다. AMI 컴포넌트의 호출은 호스팅 JVM의 기본 로케일과 시간대 하에서 내재적으로 실행됩니다. 컨텍스트 호출 요소는 API를 통하여 액세스될 때 또는 비즈니스 메소드를 내보내기할 때 JVM의 해당 요소에 API 기본값을 사용하여 설정되지 않습니다. JVM 기본값이 아닌 컨텍스트 요소를 내보내려면, AMI 서블릿, AMI 엔터프라이즈 Bean 및 EJB 클라이언트 애플리케이션은 국제화 컨텍스트 API를 사용하여 호출 요소를 설정(겹쳐쓰기)해야 합니다. 또한 컨테이너는 AMI 서블릿 라이프사이클 메소드와 AMI EJB 비즈니스 메소드 호출 시 가져온 호출자 컨텍스트를 논리적으로 일시중단시킵니다. 호출 프로세스의 컨텍스트를 계속 전파하려면, AMI 서블릿과 엔터프라이즈 Bean은 호출자 컨텍스트 요소를 호출 컨텍스트로 전송하기 위해 API를 사용해야 합니다.
CMI(Container-Managed Internationalization)에서 지원되지 않는 국제화 컨텍스트 관리 요구사항이 있는 서버 컴포넌트에 대해 AMI를 지정하십시오.
CMI(Container-managed internationalization)
CMI는 서버 애플리케이션 컴포넌트에 선호되는 국제화 컨텍스트 관리 정책입니다. 또한 기본 정책입니다. CMI에서 국제화 서비스는 웹 및 EJB 컨테이너와 협력하여 서블릿과 엔터프라이즈 Bean에 대한 호출 국제화 컨텍스트를 설정합니다. 서비스는 서블릿(서비스 메소드) 또는 EJB 비즈니스 메소드와 연관된 정책의 컨테이너 국제화 속성에 따라 호출 컨텍스트를 설정합니다.
CMI 정책에는 컨테이너의 범위가 호출로 지정된 국제화 컨텍스트를 표시하는 컨테이너 국제화 속성이 있습니다. 세부사항은 컨테이너 국제화 속성을 참조하십시오. 기본적으로 CMI 컴포넌트의 호출은 호출자의 국제화 컨텍스트 하에서 실행됩니다. 또는 서블릿이나 비즈니스가 배치 디스크립터에서 속성과 연관되지 않을 때마다 내재적 정책 [CMI,RunasCaller]을 유지합니다. 전체 세부사항은 국제화 컨텍스트: 관리 정책을 참조하십시오.
CMI 컴포넌트 내 메소드는 국제화 컨텍스트 API를 사용하여 호출 컨텍스트의 요소를 얻을 수 있지만, 설정할 수 없습니다. CMI 컴포넌트 내 호출 컨텍스트 요소를 설정하려는 시도의 결과는 java.lang.IllegalStateException 예외입니다.
표준 국제화 컨텍스트 관리를 요구하는 서버 애플리케이션 컴포넌트를 위한 컨테이너 관리 국제화를 지정하십시오. 그런 다음 호출자의 국제화 컨텍스트 하에서 실행하지 않을 CMI 엔터프라이즈 Bean의 비즈니스 메소드 및 CMI 서블릿의 컨테이너 국제화 속성을 지정합니다.