Tipo de internacionalización
Cada componente de aplicación de servidor tiene un valor de tipo de internacionalización que indica si el contexto de internacionalización de la invocación lo va a gestionar el componente o el contenedor Java™ EE en el que se encuentra.
- Internacionalización gestionada por aplicación (AMI)
- Internacionalización gestionada por contenedor (CMI)
Un componente de servidor puede desplegarse como AMI o CMI, pero no ambos; CMI es el valor predeterminado. El valor se aplica a todo el componente en cada una de las invocaciones. Los beans de entidad sólo utilizan CMI. Las aplicaciones cliente de EJB (Enterprise JavaBeans) no tienen un valor de tipo de internacionalización, sino que utilizan AMI de forma implícita.
Internacionalización gestionada por aplicación
Bajo la política de despliegue de AMI, los desarrolladores de componentes dan por supuesto que se tiene el control total sobre el contexto de internacionalización de la invocación. Los componentes de AMI pueden utilizar la API del contexto de internacionalización para establecer mediante programación los elementos de contexto de invocación.
Los componentes AMI gestionan el contexto de invocación. Las invocaciones de componentes de AMI se ejecutan de forma implícita bajo el entorno local y el huso horario predeterminado de la JVM en la que se encuentran. Los elementos del contexto de invocación que no se establecen con la API toman el valor predeterminado de los correspondientes elementos de la JVM cuando se accede a través de la API o cuando se exportan a métodos de empresa. Para exportar elementos de contexto que no sean los valores predeterminados de JVM, servlets de AMI, enterprise beans de AMI o cliente de EJB, las aplicaciones deben establecer (sobrescribir) los elementos de invocación utilizando el API de contexto de internacionalización. Además, el contenedor suspende de forma lógica el contexto del llamante importado en invocaciones del método de ciclo de vida del servlet de AMI y el método de empresa de EJB de AMI. Para continuar la propagación del contexto del proceso de llamada, los AMI servlets y enterprise beans deben utilizar la API para transferir los elementos de contexto del llamante al contexto de invocación.
Especifique la AMI para los componentes de servidor que tienen requisitos de gestión de contexto de internacionalización sin soporte por parte de la Internacionalización gestionada por contenedor (CMI).
Internacionalización gestionada por contenedor
CMI es la política de gestión de contexto de internacionalización para los componentes de aplicación del servidor; también es la política predeterminada. Bajo CMI, el servicio de internacionalización colabora con los contenedores web y EJB para establecer el contexto de internacionalización de la invocación para servlets y enterprise beans. El servicio establece el contexto de la invocación en función del atributo de internacionalización del contenedor de la política asociada con un servlet (método de servicio) o un método de empresa de EJB.
Una política CMI contiene un atributo de internacionalización de contenedor que indica qué contexto de internacionalización va a asignar como ámbito el contenedor a una invocación. Para más detalles, consulte Atributos de internacionalización de contenedor. De forma predeterminada, las invocaciones de los componentes de CMI se ejecutan bajo el contexto de internacionalización del llamante; o mejor dicho, se adhieren a la política implícita [CMI,RunasCaller] siempre y cuando el servlet o la empresa no esté asociada a un atributo en el descriptor de despliegue. Para más detalles, consulte Contexto de internacionalización: políticas de gestión.
Los métodos incluidos en componentes de CMI pueden obtener elementos de un contexto de invocación utilizando la API del contexto de internacionalización, pero no puede establecerlos. Cualquier intento de establecer elementos del contexto de invocación dará como resultado una excepción java.lang.IllegalStateException.
Especifique internacionalización gestionada por contenedor para componentes de aplicación de servidor que precisen de gestión de contexto de internacionalización estándar. A continuación, especifique los atributos de internacionalización de contenedor para servlets de CMI y métodos de empresa de enterprise beans de CMI que no deban ejecutarse bajo el contexto de internacionalización del llamante.