Perform this task to access elements of the caller internationalization
context.
About this task
Every remote invocation of
an application component has an associated caller internationalization
context associated with the thread that is running that invocation.
A caller context is propagated by the internationalization service
and middleware to the target of a request, such as an Enterprise JavaBeans (EJB) business method or servlet
service method. This task also applies to Web service client programs.
Procedure
- Obtain the desired caller context elements.
java.util.Locale [] myLocales = null;
try {
myLocales = callerI18n.getLocales();
}
catch (IllegalStateException ise) {
// The Caller context is unavailable;
// is the service started and enabled?
}
...
The Internationalization interface contains the following
methods to get caller internationalization context elements:
- Locale [] getLocales() Returns the list of caller locales
that are associated with the current thread.
- Locale getLocale() Returns the first in the list of caller
locales that are associated with the current thread.
- TimeZone getTimeZone() Returns the SimpleTimeZone caller
that is associated with the current thread.
The Internationalization interface supports read-only
access to internationalization context within application components.
Methods of the Internationalization interface are available to all
EJB application components and are used in the same manner for each,
but the method semantics vary according to the component type. For
instance, when obtaining the caller locale within an EJB client application,
the interface returns the default locale of the host Java virtual machine (JVM); in contrast, when
obtaining caller context within a servlet service method (for example,
doPost or doGet methods), the interface returns the first locale (accept-language)
propagated within the corresponding HTML request. See Internationalization
context for a discussion of how the service propagates internationalization
context throughout an application.
- Use the caller context elements to localize computations
under a locale or time zone of the calling process.
DateFormat df = DateFormat.getDateInstance(myLocale);
String localizedDate = df.getDateInstance().format(aDateInstance);
...