호출자 국제화 컨텍스트의 요소에 액세스하려면 이 태스크를 수행하십시오.
이 태스크 정보
애플리케이션 컴포넌트의 모든 원격 호출에는 해당 호출을 실행하고 있는 스레드와 연관된 호출자 국제화 컨텍스트가
있습니다. 호출자 컨텍스트는 국제화 서비스와 미들웨어에서
EJB(Enterprise JavaBeans) 비즈니스 메소드나 서블릿
서비스 메소드와 같은 요청 대상으로 전파됩니다. 이 태스크는 웹 서비스 클라이언트 프로그램에도 적용됩니다.
프로시저
- 원하는 호출자 컨텍스트 요소를 얻습니다.
java.util.Locale [] myLocales = null;
try {
myLocales = callerI18n.getLocales();
}
catch (IllegalStateException ise) {
// 호출자 컨텍스트가 사용 불가능합니다.
// 서비스가 시작되고 사용 가능합니까?
}
...
국제화 인터페이스는 호출자 국제화 컨텍스트 요소를 얻으려면 다음 메소드를 포함합니다.
- Locale [] getLocales()은 현재 스레드와 연관된 호출자 로케일 목록을 리턴합니다.
- Locale getLocale()은 현재 스레드와 연관된 호출자 로케일 목록에서 첫 번째를 리턴합니다.
- TimeZone getTimeZone()은 현재 스레드와 연관된 SimpleTimeZone 호출자를 리턴합니다.
국제화 인터페이스는 애플리케이션 컴포넌트 내 국제화 컨텍스트에 대한 읽기 전용 액세스를 지원합니다. 국제화 인터페이스의 메소드는
모든 EJB 애플리케이션 컴포넌트에 사용 가능하며 각각에 대해 동일한 방법으로 사용되지만,
컴포넌트 유형에 따라 메소드 시맨틱이 다릅니다. 예를 들어
EJB 클라이언트 애플리케이션 내 호출자 로케일을 얻으면,
인터페이스는 호스트 JVM(Java™ virtual machine)의 기본 로케일을 리턴합니다.
반대로 서블릿 서비스 메소드(doPost 또는 doGet 메소드) 내 호출자 컨텍스트를 얻으면
인터페이스는 해당 HTML 요청 내 전파된 첫 번째 로케일(accept-language)을 리턴합니다. 서비스가 애플리케이션을 통해 국제화 컨텍스트를 전파하는 방법의 토론은 국제화
컨텍스트를 참조하십시오.
- 호출 프로세스의 로케일 또는 시간대로 계산을 로컬화하려면 호출자 컨텍스트 요소를 사용하십시오.
DateFormat df = DateFormat.getDateInstance(myLocale);
String localizedDate = df.getDateInstance().format(aDateInstance);
...