Errores del servicio de internacionalización

Determinadas condiciones pueden hacer que el servicio de internacionalización no se inicie, que se emitan excepciones de java.lang.IllegalStateException mientras se ejecuta una aplicación o que se empleen comportamientos predeterminados.

La excepción java.lang.IllegalStateException indica una de las situaciones siguientes:
  • Un componente de aplicación ha intentado una operación no soportada por el modelo de programación de internacionalización.

    La excepción IllegalStateException se genera siempre que un componente de la aplicación del servidor cuyo tipo de internacionalización esté establecido en Internacionalización gestionada por contenedor (CMI) intente establecer el contexto de invocación. Este comportamiento es una violación de la política de CMI, bajo la cual, los servlets y enterprise beans no pueden modificar su contexto de internacionalización de invocación.

  • Se ha producido una anomalía que inhabilita el servicio.

    Por ejemplo, si el servicio de internacionalización no se ha inicializado correctamente, la búsqueda de JNDI (Java™ Naming and Directory Interface) en el atributo de URL UserInternationalization emite una excepción javax.naming.NameNotFoundException que contiene una instancia IllegalStateException.

Las situaciones siguientes se pueden producir cuando se ejecuta la aplicación preparada para internacionalización. Estas condiciones pueden provocar que el servicio de internacionalización no se arranque, que se lancen excepciones de IllegalStateException o que se lleven a cabo comportamientos predeterminados.

Si percibe algún comportamiento inesperado o excepcional, es muy probable que el problema esté relacionado con una de estas condiciones. Debe examinar el registro cronológico de rastreo para indagar en estas condiciones, lo que implica que tendrá que configurar el servicio de rastreo para generar mensajes sobre la función servicio de internacionalización.

A continuación figuran las series de rastreo para el servicio de internacionalización; utilice las dos:
com.ibm.ws.i18n.context.*=all=enabled:com.ibm.websphere.i18n.context.*=all=enabled

El servicio está inhabilitado

El servicio de internacionalización no está inicializado cuando se borra el valor de inicio. El servicio genera un mensaje que indica si está habilitado o inhabilitado. Las aplicaciones no pueden acceder a la API de internacionalización cuando el servicio está inhabilitado. Si la aplicación intenta realizar una consulta JNDI para obtener la referencia UserInternationalization, la consulta falla y genera una excepción NamingException indicando que no se ha podido encontrar la referencia. Además, el servicio no asigna el ámbito (propaga) el contexto de internacionalización en llamadas de métodos de empresa de entrada (de salida).

El servicio no se ha iniciado

El servicio de internacionalización es operativo siempre que su estado sea INICIADO. Por ejemplo, si una aplicación intenta acceder al contexto de internacionalización y el servicio no está iniciado, la API genera una excepción IllegalStateException. Además, el servicio no proporciona soporte en tiempo de ejecución para servlets y enterprise beans.

A medida que un servidor de aplicaciones progresa en su ciclo de vida, inicializa, arranca, detiene y termina (destruye) el servicio de internacionalización. Si se produce una anomalía durante la inicialización, el servicio no se arranca. Una vez que el servicio está arrancado, su estado puede cambiar a BLOCKED (BLOQUEADO) si se produce algún error grave. El servicio genera un mensaje en cada cambio de estado.

Si un mensaje de rastreo indica que el servicio no se encuentra en estado STARTED, consulte los mensajes anteriores para determinar el problema. Por ejemplo, el servicio de internacionalización no se arranca si el servicio de actividad no está disponible y se visualiza un mensaje referente a esto durante la inicialización del servicio de internacionalización.

Durante el arranque, los mensajes siguientes indican potenciales problemas de ejecución o de configuración:
No hay soporte para ORB
El servicio no ha podido obtener una instancia de un ORB (Intermediario para solicitudes de objetos). Esta condición es un error muy grave. Examine los archivos SystemErr.log y SystemOut.log para obtener información.
Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.
No hay soporte para TCM
El servicio no ha podido obtener una instancia de su gestor de contexto de hebras (TCM). Esta condición es un error muy grave. Examine los archivos SystemErr.log y SystemOut.log para obtener información.
No hay soporte para IIOP (servicio de actividad)
El servicio no se ha podido registrar con el servicio de actividad. Esta condición es un error muy grave. El Servicio de internacionalización no se puede propagar o recibir contexto en solicitudes IIOP (Internet Inter-ORB Protocol) sin soporte para el servicio de actividad. Examine los archivos SystemErr.log y SystemOut.log para obtener información.
No hay soporte para AsynchBeans
El servicio no se ha podido registrar en el entorno de beans asíncronos. Este aviso indica que el entorno de beans asíncronos no tiene soporte para el contexto de internacionalización.
No hay soporte para contenedor EJB
El servicio no se ha podido registrar con el contenedor EJB (Enterprise JavaBeans). Este aviso indica que el servicio de internacionalización no puede dar soporte a enterprise beans. Si el soporte de contenedor EJB, los contextos de internacionalización no asignan el ámbito adecuado a los métodos de empresa EJB. Revise el registro cronológico de rastreo para ver si existen condiciones de error relacionadas con contenedores EJB.
No hay soporte para contenedor web
El servicio no se ha podido registrar con el contenedor web. Este aviso indica de que el servicio de internacionalización no puede dar soporte a servlets ni archivos JSP (Java Server Pages). Sin el soporte de contenedor web, los contextos de internacionalización no asignan el ámbito adecuado a los métodos de servicio de servlet. Revise el registro cronológico de rastreo en busca de condiciones de error relacionadas con el contenedor web.
No hay soporte para metadata
El servicio no se puede registrar con el servicio de metadatos. Este aviso indica que el servicio de internacionalización no puede procesar políticas de internacionalización en descriptores de despliegue de aplicaciones. Sin soporte de metadatos, el servicio asocia la política de gestión de contexto de internacionalización predeterminado, [CMI, RunAsCaller], a cada invocación de método de empresa de enterprise bean y método de ciclo de vida de servlet. Revise el registro cronológico de rastreo para ver si hay condiciones de error relacionadas con el servicio de metadatos.
No hay soporte para JNDI (Servicio de nombres)
El servicio no ha podido enlazar el objeto UserInternationalization con el espacio de nombres. Esta condición es un error muy grave. Los componentes de aplicación no pueden acceder a las referencias de la API del contexto de internacionalización, por lo que tampoco son capaces de acceder a elementos del contexto de internacionalización. Revise el registro cronológico de rastreo en busca de condiciones de error relacionadas con el servicio de nombres (JNDI).
No hay soporte para API
El servicio no ha podido obtener una instancia de un objeto de la API del contexto de internacionalización. Esta condición es un error muy grave. Los componentes de aplicación no pueden acceder a las referencias de la API del contexto de internacionalización, por lo que tampoco son capaces de acceder a elementos del contexto de internacionalización.

Elemento de contexto no válido

El servicio ha detectado un elemento de contexto de internacionalización no válido. Por ejemplo, el servicio de internacionalización no da soporte a instancias TimeZone de un tipo distinto de java.util.SimpleTimeZone. Si el servicio encuentra un elemento no utilizable, anota un mensaje y sustituye el correspondiente elemento predeterminado de la JVM.

Falta elemento de contexto

El servicio ha detectado que falta un elemento del contexto de internacionalización. Las solicitudes entrantes (por ejemplo, desde servidores de aplicaciones que no admiten el servicio de internacionalización) no tienen contexto de internacionalización. Cuando el servicio intenta acceder a un elemento del contexto de internacionalización del interlocutor (que en este caso no existe), anota cronológicamente un mensaje y sustituye el elemento predeterminado correspondiente de la JVM (máquina virtual de Java).

Siempre que sea posible, el servicio de internacionalización debe habilitarse dentro de todos los clientes y servidores de aplicaciones de hospedaje que componen una aplicación empresarial internacionalizada. Para obtener más información, consulte Administración del servicio de internacionalización.

Política no válida

El servicio de internacionalización ha detectado una política de internacionalización que no está formada correctamente en el descriptor de despliegue de aplicación. El servicio sustituye el atributo incorrectamente formado por el valor predeterminado apropiado. Por ejemplo, si el tipo de internacionalización de un bean de entidad se establece en Application durante la ejecución de una llamada de método de empresa o servlet, el servicio registra cronológicamente la incoherencia y en su lugar implanta el valor Container.

Además, los componentes de aplicación AMI tienen un atributo de internacionalización de contenedor implícito. De forma predeterminada, se ejecutan como servidor. El servicio pone en ejecución de forma automática la política implícita, [AMI, RunAsServer] y anota los mensajes relacionados.

Los atributos de internacionalización de contenedor no válidos suelen presentarse cuando se especifican los campos ID de huso horario y Entornos locales. Cuando se detectan entornos locales e identificadores de huso horario no válidos en los atributos, el servicio los sustituye por el elemento predeterminado correspondiente de la JVM. Asegúrese de seguir las directrices proporcionadas en Ensamblaje de aplicaciones preparadas para internacionalización.

Falta política

El servicio ha detectado que falta una política de internacionalización. El servicio sustituye la política que falta por el valor predeterminado apropiado. Por ejemplo, si falta el tipo de internacionalización para un servlet o un enterprise bean, el servicio establece el atributo en Container.

Los atributos de internacionalización de contenedor no son obligatorios para componentes de aplicación CMI. En el caso de que un servlet CMI o método de empresa EJB carezca de un atributo de internacionalización de contenedor, el servicio implanta de forma transparente la política implícita [CMI, RunAsCaller].

Cuando una aplicación carece de políticas de internacionalización en el descriptor de despliegue o el soporte de metadatos no está disponible, el servicio anota un mensaje y aplica la política [CMI, RunAsCaller] en cada invocación de método de empresa EJB y de método de servicios de servlets.


Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rin_troubleshoot
File name: rin_troubleshoot.html