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 configure también 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 sobre las clases cargadas en Liberty y entre sí, y que surjan problemas de coherencia del espacio de clases entre aplicaciones, sobretodo a medida que se vayan añadiendo y suprimiendo características en un servidor en ejecución. Ninguna de estas consideraciones se aplican a las aplicaciones que especifiquen un elemento <classloader> en su configuración, porque pueden mantener 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>