Acceso a las API de terceros desde una aplicación Java EE

De forma predeterminada, las aplicaciones Java™ EE no tienen acceso a las API de terceros disponibles en Liberty. Para habilitar este acceso, la aplicación debe configurarse en el archivo server.xml, o en un archivo incluido.

Open Liberty La documentación más reciente sobre la configuración del cargador de clases para Liberty está disponible en el sitio web deOpen Liberty.

Acerca de esta tarea

En el ejemplo siguiente, una aplicación denominada Scholar necesita acceso a las API de terceros que están disponibles en Liberty.

La aplicación también utiliza una biblioteca común denominada Alexandria. Esta biblioteca se ubica en el directorio ${server.config.dir}/mylib/Alexandria.

Evitar problemas: es posible que las API de terceros no sean compatibles después de una actualización. Para obtener más información, consulte Soporte externo deLiberty.

Procedimiento

  1. Configure la carga de clases para la aplicación, de modo que la aplicación pueda acceder a las API de terceros.

    El valor predeterminado para el atributo apiTypeVisibility del elemento classloader es spec, ibm-api, api, stable. Donde spec representa las API de especificación pública disponibles para la compilación y el tiempo de ejecución, ibm-api representa las API disponibles en Liberty. El valor api representa API públicas disponibles para la compilación y, también, el tiempo de ejecución, y stable representa API de especificación de terceros estables disponibles de forma predeterminada para la compilación y, también, el tiempo de ejecución. Si se incluye third-party en el atributo apiTypeVisibility del elemento classloader, las API de terceros pasan a estar disponibles.

    En el archivo server.xml, o en un archivo incluido, configure la visibilidad del tipo de API añadiendo el siguiente código:
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="spec, ibm-api, stable, third-party" commonLibraryRef="Alexandria" />
    </application>

    Si se añade un prefijo + o - a tipos de API, estos tipos de API se añaden o eliminan, respectivamente, del conjunto predeterminado de tipos de API. El prefijo +third-party da como resultado spec, ibm-api, api, stable, third-party. El prefijo -api da como resultado spec, ibm-api, stable.

    En el archivo server.xml, o en un archivo incluido, configure la visibilidad del tipo de API añadiendo el siguiente código:
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="+third-party, -api" commonLibraryRef="Alexandria" /> 
    </application>
  2. Si la aplicación utiliza cualquier biblioteca común, establezca estas bibliotecas para que utilicen la misma visibilidad de tipo de API.
    En el archivo server.xml, o en un archivo incluido, añada el siguiente código:
    <library id="Alexandria" apiTypeVisibility="spec, ibm-api, stable, third-party">
      <fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
    </library>