호출 로케일 및 시간대 액세스

호출 국제화 컨텍스트의 요소에 액세스하려면 이 태스크를 수행하십시오.

시작하기 전에

애플리케이션 컴포넌트는 먼저 국제화 오브젝트에 대한 참조를 분석한 다음 국제화 컨텍스트 API의 국제화 인터페이스에 바인드해야 합니다.

이 태스크 정보

서블릿 서비스 또는 EJB(Enterprise JavaBeans) 비즈니스 메소드의 모든 원격 호출에는 해당 호출을 실행 중인 스레드와 연관된 호출 국제화 컨텍스트가 있습니다. 호출 컨텍스트는 서블릿과 비즈니스 메소드 구현이 실행하는 국제화 컨텍스트입니다. 국제화 서비스와 미들웨어에 의해 다음 호출에서 전파됩니다. 이 태스크는 웹 서비스 클라이언트 프로그램에도 적용됩니다.

프로시저

  1. 원하는 호출 컨텍스트 요소를 얻으십시오.
    java.util.Locale myLocale;
    try {
      myLocale = invocationI18n.getLocale();
    }
    catch (IllegalStateException ise) {
      // The invocation context is unavailable; 
      // 서비스가 시작되고 사용 가능합니까?
    }
    ...
    국제화 인터페이스는 호출 국제화 컨텍스트 요소를 얻고 설정하기 위해 다음 메소드를 포함합니다.
    • Locale [] getLocales(). 현재 스레드와 연관된 호출 로케일 목록을 리턴합니다.
    • Locale getLocale(). 현재 스레드와 연관된 호출 로케일의 목록에서 첫 번째를 리턴합니다.
    • TimeZone getTimeZone(). 현재 스레드와 연관된 SimpleTimeZone 호출을 리턴합니다.
    • setLocales(Locale []). 현재 스레드와 연관된 호출 로케일 목록을 제공된 목록으로 설정합니다.
    • setLocale(Locale). 현재 스레드와 연관된 호출 로케일 목록을 제공된 로케일을 포함한 목록으로 설정합니다.
    • setTimeZone(TimeZone). 현재 스레드와 연관된 호출 시간대를 제공된 SimpleTimeZone으로 설정합니다.
    • setTimeZone(String). 현재 스레드와 연관된 호출 시간대를 제공된 ID가 있는 SimpleTimeZone으로 설정합니다.

    InvocationInternationalization 인터페이스는 애플리케이션 컴포넌트 내 호출 국제화 컨텍스트에 대한 읽기 및 쓰기 액세스를 지원합니다. 그러나 국제화 컨텍스트 관리 정책에 따라, 국제화 컨텍스트(애플리케이션 관리 국제화, 또는 AMI, 컴포넌트)를 관리하기 위해 구성된 컴포넌트에게만 호출 국제화 컨텍스트 요소에 대한 쓰기 액세스가 있습니다. CMI(Container-Managed Internationalization) 애플리케이션 컴포넌트 내 호출 컨텍스트 요소를 설정하는 호출로 java.lang.IllegalStateException 예외가 발생합니다. 애플리케이션 컴포넌트가 InvocationInternationalization 메소드를 사용할 수 있는 방법에서의 차이는 국제화 컨텍스트에 설명됩니다.

  2. 호출 프로세스의 로케일이나 시간대에서 계산을 로컬화하려면 호출 컨텍스트 요소를 사용하십시오.
    DateFormat df = DateFormat.getDateInstance(myLocale);
      String localizedDate = df.getDateInstance().format(aDateInstance);
      ...

다음 코드 예제에서 로케일(en,GB) 및 단순 시간대(GMT)가 투명하게 myBusinessMethod 메소드에 대한 호출에 전파됩니다. myEjb와 같은, 서버 측 애플리케이션 컴포넌트는 이 컨텍스트 요소를 얻기 위해 InvocationInternationalization 인터페이스를 사용할 수 있습니다.
...
//--------------------------------------------------------------------
// Set the invocation context under which the business method or 
// servlet will run and propagate on subsequent remote business 
// method invocations.
//--------------------------------------------------------------------
try {
  invocationI18n.setLocale(new Locale("en", "GB"));
  invocationI18n.setTimeZone(SimpleTimeZone.getTimeZone("GMT"));
}
catch (IllegalStateException ise) {
  // Is the component CMI; is the service started and enabled?  
}
myEjb.myBusinessMethod();

CMI 애플리케이션 컴포넌트 내, Internationalization 및 InvocationInternationalization 인터페이스는 의미적으로 동등합니다. 이 인터페이스 중 하나를 사용하여 컴포넌트가 실행 중인 스레드와 연관된 컨텍스트를 얻을 수 있습니다. 예를 들어, 두 인터페이스를 사용하여 서블릿 doPost 서비스 메소드에 전파된 로케일 목록을 얻을 수 있습니다.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tin_accessinvoctz
파일 이름:tin_accessinvoctz.html