Containerattribute für die Internationalisierung
Die Internationalisierungsrichtlinie jedes CMI-Servlets und jeder EJB-Geschäftsmethode hat ein Containerattribut für die Internationalisierung, das angibt, welchen Internationalisierungskontext der Container dem Aufruf zuweisen soll.
- Ausführen als (RunAs)
- Ländereinstellungen
- Zeitzonen-ID
- CMI-Servlets in einem Webmodul
- Geschäftsmethoden von CMI-Enterprise-Beans in einem EJB-Modul
- Geschäftsmethoden von Session-Beans mit Unterstützung von Web-Services. In den folgenden Beispielen bezieht sich der Begriff unterstützte Enterprise-Bean sowohl auf CMI-Enterprise-Beans als auch auf Session-Beans mit Unterstützung für Web-Services.
Feld "RunAs"
Im Feld RunAs kann einer von drei Aufrufkontexttypen angegeben werden, den ein Container einer Methode zuweisen kann. Für Servlet-Servicemethoden und EJB-Geschäftsmethoden erstellt der Container den Internationalisierungskontext für Aufrufe gemäß der Angabe im Feld RunAs und ordnet diesen Kontext dem aktuellen Thread zu, bevor er diesen der Implementierung der Methode zuweist.
Standardmäßig werden Aufrufe von Servlet-Servicemethoden und EJB-Geschäftsmethoden implizit als aufrufender Prozess (RunAsCaller) ausgeführt, sofern das Feld RunAs eines Attributs einer Richtlinie keine andere Anweisung enthält. EJB-Clientanwendungen und AMI-Serverkomponenten werden immer als Server (RunAsServer) ausgeführt.
- Caller
- (Caller) Der Container ruft die Methode im Internationalisierungskontext des aufrufenden Prozesses auf. Sollte ein Kontextelement fehlen, stellt der Container das entsprechende Standardkontextelement der JVM (Java™ Virtual Machine) bereit. Wählen Sie diesen Typ im Feld "RunAs" aus, wenn der Aufruf im Aufrufkontext des aufrufenden Prozesses ausgeführt werden soll.
- Server
- Der Container ruft die Methode mit der Standard-Locale und der Standardzeitzone der JVM auf. Wählen Sie diesen Typ im Feld "RunAs" aus, wenn der Aufruf im Aufrufkontext der JVM ausgeführt werden soll.
- Angegeben
- Der Container ruft die Methode in dem Internationalisierungskontext auf, der im Attribut angegeben ist. Wählen Sie diesen Typ im Feld "RunAs" aus, wenn der Aufruf in dem angepassten Aufrufkontext ausgeführt werden soll, der in der Richtlinie angegeben ist. Geben Sie anschließend in den Feldern "Locales" und "Zeitzonen-ID" die angepassten Kontextelemente an.
Feld "Locales"
- Sprachencode. Im Idealfall ist der Sprachencode einer der kleingeschriebenen zweistelligen Code, die im ISO-Standard 639 definiert sind. Der Sprachencode ist jedoch nicht auf ISO-Codes beschränkt und muss auch nicht zwingend angegeben werden. Eine gültige Locale muss einen Sprachencode angeben, falls sie keinen Landescode definiert.
- Landescode. Im Idealfall ist der Landescode einer der großgeschriebenen, zweistelligen Codes, die im ISO-Standard 3166 definiert sind. Der Landescode ist jedoch nicht auf die ISO-Codes beschränkt und muss nicht zwingend angegeben werden. Eine gültige Locale muss einen Landescode angeben, falls sie keinen Sprachencode definiert.
- Variante. Die Variante ist ein lieferantenspezifischer Code. Das Variantenfeld ist kein erforderliches Feld und dient lediglich zur Angabe des Sprachen- und Landescodes, falls eine Anwendung oder Plattform solche Werte verlangt.
Eine gültige Lokale muss mindestens einen Sprachencode oder einen Landescode angeben. Die Variante ist immer optional. Es wird die erste Locale in der Liste zurückgegeben, wenn mit der Methode "getLocale" der API für Internationalisierungskontext auf den Aufrufkontext zugegriffen wird.
Feld "Zeitzonen-ID"
Im Feld Zeitzonen-ID wird eine Kurzkennung für eine Zeitzone eingegeben, die der Container bei einem Aufruf verwenden soll. Sie können das Feld Zeitzonen-ID auch für die Geschäftsmethoden eines Web-Service konfigurieren.
Eine Zeitzone repräsentiert eine relative Zeitangabe und berechnet Angaben zur Sommerzeit. Zu den gültigen IDs gehören alle vom Typ java.util.TimeZone unterstützten Zeitzonen. Eine gültige ID ist jede ID, die in der Liste der Zeitzonen-IDs enthalten ist, die von der Methode java.util.TimeZone.getAvailableIds() zurückgegeben wird, und jede angepasste ID mit dem Format GMT[+|-]hh[[:]mm]. America/Los_Angeles und GMT-08:00 sind beispielsweise gültige Zeitzonen-IDs.