Problemas y restricciones conocidos del entorno de ejecución
Hay algunos problemas y restricciones conocidos que se aplican cuando se trabaja con el entorno de ejecución del perfil Liberty.
Lista de problemas y restricciones conocidos.
- Restricciones generales:
- Niveles mínimos de Java soportados
- El nombre del directorio de instalación y la vía de acceso no puede incluir caracteres que no sean ASCII.
- El cambio del origen de datos JDBC en el tiempo de ejecución puede provocar errores de JPA
- Una aplicación que confía en que getRealPath devuelva un resultado, debe desplegarse como una aplicación ampliada y no como un archivo WAR
- Perfil completo de WebSphere Application Server no funcionan con el perfil Liberty
- Restricciones de conjunto de archivos
- Alteración temporal de las clases del SDK Java
Cuando anula la publicación de una biblioteca compartida, no podrá suprimirla hasta que se detenga el servidor.
- Restricciones de búsquedas java:global
- Aplicaciones que no se inician en un servidor Liberty incorporado
Restricciones relacionadas con el soporte para el adaptador de recursos de WebSphere MQ y JCA genérico
- El mantenimiento de versiones no es posible para las aplicaciones del directorio "dropins"
- Restricciones específicas de las características de Liberty:
Restricciones de la característica Centro de administración
- Restricciones de la característica appSecurity-2.0
- Restricciones de la característica de validación de beans
- Restricciones de la característica de memoria caché dinámica
- Restricciones de la característica ejbLite-3.1
Restricciones de la característica eventLogging-1.0
Restricciones de la característica jpa-2.1
- Restricciones de la característica jsp-2.2
- Restricción de la característica monitor-1.0
Restricciones de la característica requestTiming-1.0
- Restricciones de la característica wmqJmsClient-1.1
Restricciones de la característica wmqJmsClient-2.0
Restricciones de la característica concurrent-1.0
Restricciones de la característica jacc-1.5
- La modificación de las propiedades de proveedor dataSource, jdbcDriver, connectionManager y JDBC en tiempo de ejecución puede provocar errores de JPA
Niveles mínimos de Java soportados
- Entorno de ejecución Java SE 6
- Para el JDK Java de IBM®, el nivel mínimo soportado es 6.0 (J9 2.6) SR 1. Para el JDK de Oracle, el nivel mínimo soportado es Java 6 actualización 26.
- Entorno de ejecución Java SE 7
- Para el JDK Java de IBM, el nivel mínimo soportado es IBM Runtime Environment, Java Technology Edition 7.0.4.1. Para el JDK de Oracle en Windows y Linux, el nivel mínimo soportado es Java SDK/JRE/JDK 7.0.17. Para el JDK de Oracle en Mac OS X, el nivel mínimo soportado es Java SDK/JRE/JDK 7.0 Actualización 15.
Entorno de ejecución Java SE 8
- Para el SDK Java SDK de IBM, el nivel mínimo soportado es IBM SDK, Java Technology Edition, Versión 8. Para el JDK de Oracle, el nivel mínimo soportado es Java 8 actualización 25.
En plataformas distribuidas, se da soporte a Java de 32 bits o 64 bits.
Para los sistemasWindows y Linux, puede utilizar el JDK de Oracle o el JDK de IBM.
Si desarrolla aplicaciones en Windows o Linux y tiene la intención de desplegar las
aplicaciones en un servidor que se ejecuta en el perfil completo de WebSphere Application Server,
debe utilizar el JDK de IBM. Para los sistemas HP y el sistema operativo Mac, utilice el JDK de Oracle.

![[8.5.5.2 o posterior]](../ng_v8552.gif)
![[8.5.5.2 o posterior]](../ng_v8552.gif)
El nombre del directorio de instalación y la vía de acceso no puede incluir caracteres que no sean ASCII.
Las JVM recientes no soportan del todo el uso de caracteres que no son ASCII con los mandatos -jar y -javaagent. Debe utilizar únicamente caracteres ASCII en los nombres de directorio de instalación y vías de acceso.
El cambio del origen de datos JDBC en el tiempo de ejecución puede provocar errores de JPA
Si no se ha especificado el tipo de diccionario de base de datos mediante las propiedades, OpenJPA lo detecta y lo calcula cuando se crea el primer gestor de entidad se crea y se realiza la conexión a la base de datos. Este tipo de diccionario de base de datos se utiliza para todos los gestores de entidad que se crean posteriormente. Si se modifica el origen de datos JDBC mientras se ejecuta una aplicación, la fábrica de gestores de entidad no detecta este cambio y continúa utilizando el antiguo diccionario en las operaciones para el nuevo origen de datos. Esto puede provocar errores si se cambia la base de datos por la de un proveedor diferente.
Cuando cambie una base de datos por un proveedor diferente, reinicie la aplicación.
La modificación de las propiedades de proveedor dataSource, jdbcDriver, connectionManager y JDBC en tiempo de ejecución puede provocar errores de JPA
Si actualiza la configuración de dataSource, jdbcDriver, connectionManager o cualquiera de las listas de propiedades de los proveedores de JDBC (por ejemplo, properties.db2.jcc o properties.oracle) mientras el servidor está en ejecución, es posible que vea errores J2CA8040E . Estos errores indican que varios elementos dataSource no pueden asociarse con un único connectionManager. Estas anomalías se generan aunque su configuración sólo asocia un connectionManager con el elemento dataSource .
Cuando realiza actualizaciones en la configuración de cualquiera de estos recursos JDBC, reinicie el servidor.
Una aplicación que confía en que getRealPath devuelva un resultado, debe desplegarse como una aplicación ampliada y no como un archivo WAR
La especificación Java EE indica que el método getRealPath() devuelve un valor null si el contenido pasa a estar disponible desde un archivo WAR (Web Archive). Cuando se despliega un archivo WAR en el perfil Liberty, el perfil no extrae automáticamente el archivo de archivado en una estructura de directorios. Por lo tanto, la aplicación podría no iniciarse. Si la aplicación confía en que getRealPath() devuelva un resultado, debe desplegarse la aplicación como una aplicación web ampliada y no como un archivo WAR Por ejemplo, puede extraer manualmente el archivo WAR y copiar la aplicación ampliada en el directorio dropins.
Perfil completo de WebSphere Application Server no funcionan con el perfil Liberty
No puede utilizar ningún script bajo el directorio bin de Perfil completo de WebSphere Application Server para administrar el perfil Liberty.
Restricciones de conjunto de archivos
- Los conjuntos de archivos no exploran los subdirectorios
del directorio base de forma recursiva. Por ejemplo, no se admiten estas instrucciones:
<fileset id="testFileset" dir="\temp" includes="**\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\a.jar"/> <fileset id="testFileset" dir="\temp" includes="*\a.jar"/> <fileset id="testFileset" dir="\temp" includes="a\b\a.jar"/>
Alteración temporal de las clases del SDK Java
- Si utiliza javac para compilar desde la línea de mandatos, compile el código utilizando la opción javac -endorseddirs y los archivos JAR del directorio ${wlp.install.dir}/dev/specs.
- Si utiliza Apache Ant para compilar, compile el código utilizando el elemento hijo
<compilerarg> de la tarea javac y los archivos JAR del directorio ${wlp.install.dir}/dev/specs.
En el script de compilación, especifique la opción -endorseddirs y el directorio
${wlp.install.dir}/dev/specs como elementos <compilerarg> aparte. Por ejemplo:
<javac srcdir="src" destdir="classes"/> <compilerarg value="-endorseddirs"/> <compilerarg value="${wlp.install.dir}/dev/specs"/> </javac>
- Si utiliza Apache Maven para compilar, compile el código utilizando el elemento
endorseddirs del plug-in de compilador de Maven y los
archivos JAR del directorio ${wlp.install.dir}/dev/specs.
Por ejemplo:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> <compilerArguments> <endorseddirs>${wlp.install.dir}/dev/specs</endorseddirs> </compilerArguments> </configuration> </plugin>

Cuando anula la publicación de una biblioteca compartida, no podrá suprimirla hasta que se detenga el servidor.
Cuando anula la publicación de una biblioteca compartida desde un servidor, el servidor no liberará inmediatamente el archivo JAR de biblioteca. Por lo tanto, el sistema operativo no sabe que el archivo ya no está en uso, y no le permitirá suprimir el archivo. La próxima vez que detenga el servidor, se liberará el archivo JAR de la biblioteca y podrá suprimir el archivo.
Restricciones de búsquedas java:global
Los recursos definidos en las aplicaciones con búsquedas java:global solo se pueden utilizar para acceder a los nombres declarados por las aplicaciones desplegadas en el servidor actual.
Restricciones de la característica appSecurity-2.0
- Para las aplicaciones EJB, no se admite la run-as-mode de SYSTEM_IDENTITY en los valores de extensión del archivo ibm-ejb-jar-ext.xml.
- La API getCallerIdentity no está soportada para los beans de sesión singleton.
- Las API HttpServletRequest.isUserInRole y EJBContext.isCallerInRole o los elementos del descriptor de despliegue pueden hacer referencia a los nombres de rol sin declarar antes los nombres de rol mediante la anotación @DeclareRoles o el elemento del descriptor de despliegue <security-role/>. Sin embargo, se deben declarar los roles antes de utilizarse en el perfil completo.
Aplicaciones que no se inician en un servidor Liberty incorporado
Asegúrese de que el proceso Java que inicia el servidor Liberty incorporado se haya iniciado con el argumento de JVM -javaagent apuntando a libertyInstallDir/bin/tools/ws-javaagent.jar. Si no se utiliza el argumento de JVM -javaagent, se inicia el tiempo de ejecución del servidor pero las aplicaciones no se consiguen iniciar sin excepciones obvias.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones relacionadas con el soporte para el adaptador de recursos de WebSphere MQ y JCA genérico
El adaptador de recursos de WebSphere® MQ se puede utilizar dentro del perfil Liberty de WebSphere Application Server utilizando la característica wasJmsClient-1.1 o wasJmsClient-2.0 o utilizando el soporte genérico de JCA.
puede utilizar el adaptador de recursos de WebSphere MQ versión 7.5 con el perfil Liberty versión 8.5.5 y posterior. Si desea utilizar la versión 8.0 del adaptador de recursos de WebSphere MQ, que se basa en el adaptador de recursos de JMS 2.0, debe asegurarse de que se está utilizando la versión más reciente del perfil Liberty que es compatible con el adaptador de recursos de JMS 2.0.
- Con la versión 8.5.5.2 del perfil Liberty, debe utilizarse la característica wasJmsClient-1.1 con una versión 7.5.0.5 o posterior del adaptador de recursos de IBM MQ.
- Con la versión 8.5.5.6 del perfil Liberty, se debe utilizar la característica de wasJmsClient-2.0 con una versión 8.0.0.3 o posterior del adaptador de recursos de IBM MQ
Para obtener más información acerca de la compatibilidad de versiones entre el adaptador de recursos WebSphere MQ y el perfil Liberty, consulte la Referencia para obtener el adaptador de recursos de WebSphere MQ.
- Para ejecutar el adaptador de recursos de IBM® WebSphere MQ en z/OS, debe utilizar la característica wasJmsClient-1.1orwasJmsClient-2.0.
- Las funciones de rastreo y registro no se han integrado en el sistema de rastreo de Liberty utilizando el JCA genérico. El rastreo se registra en un archivo independiente y se debe haber habilitado estableciendo las propiedades del sistema. El procedimiento para habilitar el rastreo es el mismo que la configuración de clases de WebSphere MQ para el recurso de rastro JMS para un entorno estándar Java™. Consulte Stanza de rastreo de entorno estándar Java.
El mantenimiento de versiones no es posible para las aplicaciones del directorio "dropins"
Para las aplicaciones en el directorio "dropins", el supervisor de aplicación utiliza el nombre de archivo y la extensión de archivo para determinar el tipo de aplicación y para generar el nombre y el id de aplicación. Por tanto, no puede especificarse el número de versión para la aplicación utilizando el nombre o la extensión de archivo. En un entorno de producción, no es aconsejable utilizar el directorio "dropins".
Restricciones de la característica Centro de administración
Restricciones de la característica de validación de beans
- No se admite la validación de beans en las aplicaciones OSGi.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
- No se admite la validación de beans en las aplicaciones OSGi.
- Las aplicaciones que proporcionan una implementación personalizada de ConstraintValidatorFactory en un archivo validation.xml con la característica beanValidation-1.0 no se compilan en la API de Bean Validation 1.1.
Restricciones de la característica de memoria caché dinámica
- No se admite la duplicación de memoria caché.
- Solo se admite la modalidad de almacenamiento en memoria caché de disco de alto rendimiento con las técnicas aleatoria y desalojo basado en tamaño.
- No se admite el almacenamiento en memoria caché del lado de servidor y del lado de cliente de servicios web así como la memoria caché de portlets en el archivo cachespec.xml.
- No se admite el almacenamiento en memoria caché de servlets de los servlets SingleThreadModel.
- No se admite la definición de la configuración de memoria caché mediante archivos de propiedades para los archivos JAR que contienen solo Enterprise JavaBeans (EJB).
- La limitación del tamaño de memoria caché para almacenamiento dinámico funciona solo para las máquinas virtuales Java (JVM) de 32 bits.
Restricciones de la característica ejbLite-3.1
- No se admiten los módulos EJB anteriores a la versión 3.0. Esta restricción significa que no se admiten los enlaces y extensiones que utilizan el formato de archivo .xmi en lugar de .xml.
- Los beans de sesión no se enlazan al espacio de nombres ejblocal, lo que significa que los nombres de enlace ejb-ref y las búsquedas de JNDI deben utilizar los nombres java:global, java:app o java:module. Se hará caso omiso de los elementos simple-binding-name y binding-name de interfaz en los archivos ibm-ejb-jar-bnd.xml.
- El directorio de desactivación de beans con estado no se puede configurar. Los archivos se desactivan en el área de trabajo del servidor.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones de la característica eventLogging-1.0
- La extracción de la característica eventLogging-1.0 de un servidor en ejecución provoca un reinicio de las aplicaciones web desplegadas.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones de la característica jpa-2.1
Para la característica jpa-2.1, el intercambio de entidad JPA en CORBA/RMI-IIOP requiere que ambos participantes en la comunicación habiliten niveles idénticos de característica JPA.
Restricciones de la característica jsp-2.2
- No hay soporte para la opción de configuración useInMemory que solo almacena el archivo JSP convertido en la memoria.
Restricción de la característica monitor-1.0
- Si se elimina la característica del archivo server.xml, debe reiniciar el servidor para hacer que funcionen las aplicaciones JAX-WS.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones de la característica requestTiming-1.0
- La extracción de la característica requestTiming-1.0 de un servidor en ejecución provoca el reinicio de las aplicaciones web desplegadas.
- Cuando la característica requestTiming-1.0 está habilitada, se ha demostrado que tiene un impacto de un 8% sobre el rendimiento máximo de las aplicaciones si compara con la aplicación DayTrader. Si bien el impacto en su aplicación puede ser más o menos lo indicado, debe tener en cuenta que puede haber alguna degradación importante en el rendimiento.
Restricciones de la característica wmqJmsClient-1.1
- Debe establecer manualmente la variable PATH en las variables de entorno de Windows para que apunten al directorio bin de instalación de WebSphere MQ. Debe establecer esta variable path cuando la aplicación utiliza la modalidad de conexión BINDING.
- Las clases WebSphere MQ para Java (generalmente denominadas Java base) no están incluidas en la característica wmqJmsClient-1.1. Esto está incluido en el adaptador de recursos para otros servidores de aplicaciones pero no se recomienda para las API Java base en los entornos Java, Enterprise Edition. Para obtener más información, consulte Using WebSphere MQ Java Interfaces in J2EE/JEE Environments (Utilización de interfaces Java de WebSphere MQ en entornos J2EE/JEE.
- El tipo de transporte BINDINGS_THEN_CLIENT del adaptador de recursos WebSphere MQ no se admite para la característica wmqJmsClient-1.1.
- La característica de seguridad de mensajería avanzada (AMS) no está incluida para la característica wmqJmsClient-1.1.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones de la característica wmqJmsClient-2.0
- Debe establecer manualmente la variable PATH en las variables de entorno de Windows para que apunten al directorio bin de instalación de WebSphere MQ. Debe establecer esta variable path cuando la aplicación utiliza la modalidad de conexión BINDING.
- Las clases WebSphere MQ para Java (generalmente denominadas Java base) no están incluidas en la característica wmqJmsClient-2.0. Esto está incluido en el adaptador de recursos para otros servidores de aplicaciones pero no se recomienda para las API Java base en los entornos Java, Enterprise Edition. Para obtener más información, consulte Using WebSphere MQ Java Interfaces in J2EE/JEE Environments (Utilización de interfaces Java de WebSphere MQ en entornos J2EE/JEE.
- El tipo de transporte BINDINGS_THEN_CLIENT del adaptador de recursos WebSphere MQ no se admite para la característica wmqJmsClient-2.0.
Restricciones de la característica concurrent-1.0
Para la característica
concurrent-1.0, se aplican las restricciones siguientes:
Para el contexto de hebra de tipo securityContext, cualquier información personalizada del sujeto que no se haya añadido mediante un módulo de inicio de sesión JAAS no se propagará. Por ejemplo, si el sujeto del remitente contiene un principal personalizado que se ha añadido mediante TAI, el sujeto propagado no contendrá este principal personalizado.
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Restricciones de la característica jacc-1.5
- La información de autorización (los atributos users y groups del atributo authorizations) en un archivo ibm-application-bnd.xml o un archivo ibm-application-bnd.xmi del archivo ear de la aplicación.
- La información de autorización (los atributos user, group y special-subject del atributo security-role en el elemento application-bnd) en el archivo server.xml.