Proporcionar bibliotecas globales para todas las aplicaciones Java EE
Puede proporcionar bibliotecas globales que las puede utilizar cualquier aplicación Java™ EE. Para ello, coloque los archivos JAR para estas bibliotecas en un directorio de biblioteca global y, a continuación, especifique el uso de las bibliotecas globales en la configuración del cargador de clases para cada aplicación. Sin embargo, otras aplicaciones no pueden utilizar las bibliotecas globales, por ejemplo, las aplicaciones OSGi.
Acerca de esta tarea
En el directorio de usuario especificado mediante la variable de entorno WLP_USER_DIR, hay varias ubicaciones en las que puede colocar las bibliotecas globales:
- ${shared.config.dir}/lib/global
- ${server.config.dir}/lib/global
Atención: Si utiliza bibliotecas globales, se le
recomienda que también configure un elemento
<classloader> para cada aplicación. La especificación de servlet requiere que las aplicaciones compartan el cargador de clases de la biblioteca global en su cadena padre de cargador de clases. Esto rompe la separación de los cargadores de clases para cada aplicación que podría producirse de otro modo. Por
lo tanto, es mucho más probable que las aplicaciones tengan efectos
duraderos en las clases cargadas en Liberty y entre
sí, y es más probable que surjan problemas en la coherencia de
espacio de clases entre aplicaciones, especialmente, cuando se
añaden o eliminan características de un servidor en ejecución. Ninguna
de estas consideraciones se aplica para aplicaciones que especifican
un elemento <classloader> en su
configuración, porque mantienen esta separación.
Ejemplo
En el siguiente ejemplo, una aplicación denominada estudioso se ha configurado para que utilice una biblioteca común denominada Alexandria y también la biblioteca global.
En el archivo server.xml, o en un archivo incluido, habilite la biblioteca global para una aplicación añadiendo el siguiente código:
<application id="" name="Scholar" type="ear" location="scholar.ear">
<classloader apiTypeVisibility="spec" commonLibraryRef="Alexandria, global" />
</application>
Los valores para la biblioteca global también se pueden configurar explícitamente, como un elemento de biblioteca con el ID especial global. Por ejemplo:
<library id="global">
<fileset dir="/path/to/folder" includes="*.jar" />
</library>