Accès aux paramètres régionaux et aux fuseaux horaires d'appel

Effectuez la tâche ci-après pour accéder aux éléments du contexte d'internationalisation de l'appel.

Avant de commencer

Un composant d'application doit d'abord résoudre une référence à l'objet InvocationInternationalization, puis l'associer à l'interface InvocationInternationalization de l'API du contexte d'internationalisation.

Pourquoi et quand exécuter cette tâche

Un contexte d'internationalisation d'appel est associé à l'unité d'exécution de chaque appel à distance d'une méthode métier EJB (Enterprise JavaBeans) ou de service de servlet. Le contexte d'appel correspond au contexte d'internationalisation dans lequel les implémentations de méthode de servlet et métier s'exécutent ; il est propagé lors des appels ultérieurs par le service d'internationalisation et le logiciel intermédiaire (middleware). Cette tâche s'applique également aux programmes client des services Web.

Procédure

  1. Procurez-vous les éléments du contexte d'appel désiré.
    java.util.Locale myLocale;
    try {
      myLocale = invocationI18n.getLocale();
    }
    catch (IllegalStateException ise) {
      // Le contexte d'appel n'est pas disponible ; 
      // Le service est-il démarré et activé ?  
    }
    ...
    L'interface InvocationInternationalization contient les méthodes suivantes permettant d'obtenir et de définir des éléments de contexte d'internationalisation d'appel :
    • Locale [] getLocales(). Renvoie la liste des paramètres régionaux d'appel associée à l'unité d'exécution en cours.
    • Locale getLocale(). Renvoie le premier paramètre de la liste des paramètres régionaux d'appel associée à l'unité d'exécution en cours.
    • TimeZone getTimeZone(). Renvoie l'appel SimpleTimeZone associé à l'unité d'exécution en cours.
    • setLocales(Locale []). Affecte la liste fournie à la liste des paramètres régionaux d'appel associés à l'unité d'exécution en cours.
    • setLocale(Locale). Affecte à la liste des paramètres régionaux d'appel associés à l'unité d'exécution en cours une liste contenant les paramètres régionaux fournis.
    • setTimeZone(TimeZone). Affecte au fuseau horaire d'appel associé à l'unité d'exécution en cours le fuseau horaire SimpleTimeZone fourni.
    • setTimeZone(String). Affecte au fuseau horaire d'appel associé à l'unité d'exécution en cours un fuseau horaire SimpleTimeZone dont l'ID est fourni.

    L'interface InvocationInternationalization prend en charge l'accès en lecture et en écriture au contexte d'internationalisation d'appel dans les composants d'application. Cependant, en fonction des règles de gestion de contexte d'internationalisation, seuls les composants configurés pour gérer le contexte d'internationalisation (composants AMI (application-managed internationalization)) ont accès en écriture aux éléments du contexte d'internationalisation d'appel. Les appels permettant la définition des éléments de contexte d'appel dans les composants d'application CMI (container-managed internationalization) donnent lieu à une exception java.lang.IllegalStateException. Les différences d'utilisation des méthodes InvocationInternationalization par les composants d'application sont expliquées dans Contexte d'internationalisation.

  2. Utilisez les éléments du contexte d'appel pour rechercher un calcul dans les paramètres régionaux ou le fuseau horaire du processus appelant.
    DateFormat df = DateFormat.getDateInstance(myLocale);
      String localizedDate = df.getDateInstance().format(aDateInstance);
      ...

Exemple

Dans l'exemple de code suivant, les paramètres régionaux (en,GB) et le fuseau horaire simple (GMT) sont propagés de façon transparente lors de l'appel de la méthode myBusinessMethod. Les composants d'application côté serveur, tels que myEjb, peuvent utiliser l'interface InvocationInternationalization pour obtenir ces éléments de contexte.
...
//--------------------------------------------------------------------
// Définition du contexte d'appel dans lequel la méthode métier ou 
// le servlet est exécuté et propagé lors des appels de méthode 
// métier éloignés ultérieurs.
//--------------------------------------------------------------------
try {
  invocationI18n.setLocale(new Locale("en", "GB"));
  invocationI18n.setTimeZone(SimpleTimeZone.getTimeZone("GMT"));
}
catch (IllegalStateException ise) {
  // S'agit-il d'un composant CMI ? Le service est-il démarré et activé ?  
}
myEjb.myBusinessMethod();

Dans les composants d'application CMI, les interfaces Internationalization et InvocationInternationalization sont équivalentes du point de vue sémantique. Vous pouvez utiliser l'une ou l'autre de ces interfaces pour l'obtention du contexte associé à l'unité d'exécution de ce composant. Par exemple, les deux interfaces peuvent servir à obtenir la liste des paramètres régionaux propagés à la méthode service doPost d'un servlet.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tin_accessinvoctz
Nom du fichier : tin_accessinvoctz.html