WebSphere Application Server for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

呼び出しロケールおよび時間帯へのアクセス

このタスクを実行して、呼び出し国際化対応コンテキストのエレメントにアクセスします。

始める前に

アプリケーション・コンポーネントは、まず InvocationInternationalization オブジェクトへの参照を解決し、それを国際化対応コンテキスト API の InvocationInternationalization インターフェースにバインドします。

このタスクについて

サーブレット・サービスまたは Enterprise JavaBeans (EJB) ビジネス・メソッドのすべてのリモート起動には、その起動を実行するスレッドに関連付けられた起動国際化対応コンテキストがあります。 起動コンテキストは、国際化対応コンテキストであり、この下でサーブレットおよびビジネス・メソッドのインプリメンテーションが実行されます。起動コンテキストは、国際化対応サービスおよびミドルウェアによって以降の起動時に伝搬されます。このタスクは、Web サービス・クライアント・プログラムにも適用されます。

プロシージャー

  1. 必要な起動コンテキスト・エレメントを取得します。
    java.util.Locale myLocale;
    try {
      myLocale = invocationI18n.getLocale();
    }
    catch (IllegalStateException ise) {
      // The invocation context is unavailable;
      // is the service started and enabled?  
    }
    ...
    
    InvocationInternationalization インターフェースには、get および set の両方の起動国際化対応コンテキスト・エレメント に対する、以下のメソッドが含まれています。
    • Locale [] getLocales()。現行スレッドに関連付けられた呼び出しロケールのリストを戻します。
    • Locale getLocale()。現行スレッドに関連付けられた呼び出しロケールのリスト内の最初のロケールを戻します。
    • TimeZone getTimeZone()。現行スレッドに関連付けられた SimpleTimeZone 呼び出しを戻します。
    • setLocales(Locale [])。現行スレッドに関連付けられた呼び出しロケールのリストを、提供済みリストに設定します。
    • setLocale(Locale)。現行スレッドに関連付けられた呼び出しロケールのリストを、提供済みロケールを含むリストに設定します。
    • setTimeZone(TimeZone)。現行スレッドに関連付けられた起動時間帯を、提供済み SimpleTimeZone に設定します。
    • setTimeZone(String)。現行スレッドに関連付けられた起動時間帯を、提供済み ID を持つ SimpleTimeZone に設定します。

    InvocationInternationalization インターフェースは、アプリケーション・コンポーネント内の起動国際化対応コンテキストへの読み取りおよび書き込みアクセスをサポートしています。 ただし、国際化対応コンテキスト管理ポリシーに従って国際化対応コンテキスト (アプリケーション管理国際化対応コンポーネント、すなわち AMI コンポーネント) を管理するよう構成されたコンポーネントのみが、起動国際化対応コンテキスト・エレメントへの書き込みアクセス権を持っています。 コンテナー管理国際化対応 (CMI) アプリケーション・コンポーネント内で起動コンテキスト・エレメントを設定する呼び出しを行うと、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 サービス・メソッドへ伝搬されたロケールのリストを取得することができます。




関連概念
国際化対応コンテキスト
関連タスク
国際化対応コンテキスト API へのアクセスの取得
呼び出し元のロケールおよび時間帯へのアクセス
関連資料
国際化対応コンテキスト API: プログラミング・リファレンス
例: EJB クライアント・プログラムにおける国際化対応コンテキストの管理
例: サーブレットにおける国際化対応コンテキストの管理
例: セッション Bean における国際化対応コンテキストの管理
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 5:46:14 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.iseries.doc/info/iseries/i18n/tasks/tin_accessinvoctz.html