呼び出しロケールおよび時間帯へのアクセス
このタスクを実行して、呼び出し国際化対応コンテキストのエレメントにアクセスします。
始める前に
アプリケーション・コンポーネントは、まず InvocationInternationalization オブジェクトへの参照を解決し、それを国際化対応コンテキスト API の InvocationInternationalization インターフェースにバインドします。
このタスクについて
サーブレット・サービスまたは Enterprise JavaBeans (EJB) ビジネス・メソッドのすべてのリモート起動には、 起動国際化対応コンテキストが、その起動を実行しているスレッドに関連付けられています。 起動コンテキストは、国際化対応コンテキストであり、この下でサーブレットおよびビジネス・メソッドの実装が実行されます。起動コンテキストは、国際化対応サービスおよびミドルウェアによって以降の起動時に伝搬されます。このタスクは、Web サービス・クライアント・プログラムにも適用されます。
手順
例
次のコード例では、ロケール (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 サービス・メソッドへ伝搬されたロケールのリストを取得することができます。