このタスクを実行して、国際化対応コンテキスト API への参照を解決して、
国際化対応サービスを利用します。
このタスクについて
国際化対応コンテキスト API 参照の解決は、
アプリケーション・コンポーネントの初期化メソッド内 (例えば、サーブレットの
init メソッド、または Enterprise Bean の SetXxxContext メソッド内) で、
アプリケーション・コンポーネントのライフ・サイクルの間に一度行ってください。
Web サービス・クライアント・プログラムの場合は、初期化時に国際化対応コンテキスト API への参照を解決します。Web サービス対応の Stateless Session Bean の場合は、setSessionContext メソッドで参照を解決します。
プロシージャー
- Java Naming and Directory Interface (JNDI) 名 java:comp/websphere/UserInternationalization のルックアップを実行して、UserInternationalization インターフェースへの参照を解決します。
以下に例を示します。
//--------------------------------------------------------------------
// Internationalization context imports.
//--------------------------------------------------------------------
import com.ibm.websphere.i18n.context.*;
import javax.naming.*;
...
public class MyApplication {
...
//--------------------------------------------------------------------
// Resolve a reference to the UserInternationalization interface.
//--------------------------------------------------------------------
InitialContext initCtx = null;
UserInternationalization userI18n = null;
final String UserI18nUrl = "java:comp/websphere/UserInternationalization";
try {
initCtx = new InitialContext();
userI18n = (UserInternationalization)initCtx.lookup(UserI18nUrl);
}
catch (NamingException ne) {
// UserInternationalization URL is unavailable.
}
UserInternationalization オブジェクトが、異常または制限のために使用できない場合は、JNDI ルックアップの起動により java.lang.IllegalStateException インスタンスを含む javax.naming.NameNotFoundException 例外が発行されます。
- UserInternationalization 参照を使用して、CallerInternationalization オブジェクト
または InvocationInternationalization オブジェクトへの参照を作成します。
これにより、それぞれ、呼び出し元国際化対応コンテキストと起動国際化対応コンテキストのエレメントにアクセスできるようになります。
CallerInternationalization 参照は、Internationalization インターフェースにのみバインドできます。InvocationInternationalization 参照は、アプリケーションが起動コンテキストへの読み取り専用アクセスまたは読み取り/書き込みアクセスのいずれを必要とするかに応じて、Internationalization インターフェースまたは InvocationInternationalization インターフェースにバインドできます。以下に例を示します。
...
//--------------------------------------------------------------------
// Resolve references to the Internationalization and
// InvocationInternationalization interfaces.
//--------------------------------------------------------------------
Internationalization callerI18n = null;
InvocationInternationalization invocationI18n = null;
try {
callerI18n = userI18n.getCallerInternationalization();
invocationI18n = userI18n.getInvocationInternationalization();
}
catch (IllegalStateException ise) {
// An Internationalization interface(s) is unavailable.
}