Java EE アプリケーションからサード・パーティー API へのアクセス

デフォルトでは、 Java™ EE アプリケーションは、 Libertyで使用可能なサード・パーティー API にアクセスできません。 このアクセスを可能にするには、アプリケーションを server.xml ファイルまたは組み込みファイルで構成する必要があります。

Open Liberty Liberty のクラス・ローダー構成に関する最新の資料は、 Open Liberty Web サイトから入手できます。

このタスクについて

以下の例では、 Scholar というアプリケーションは、 Libertyで使用可能なサード・パーティー API にアクセスする必要があります。

また、このアプリケーションは、Alexandria という共通ライブラリーを使用します。 このライブラリーは、${server.config.dir}/mylib/Alexandria ディレクトリーにあります。

問題の回避: アップグレード後にサード・パーティー API の互換性が維持されないことがあります。 詳しくは、 Liberty 外部サポートを参照してください。

手順

  1. アプリケーションがサード・パーティー API にアクセスできるように、アプリケーション用のクラス・ロードを構成します。

    classloader エレメントの apiTypeVisibility 属性のデフォルト値は、 spec, ibm-api, api, stableです。 ここで、 spec は、コンパイルとランタイムの両方で使用可能な公開仕様 API を表し、 ibm-api は、 Libertyで使用可能な API を表します。 値 api はコンパイル時および実行時の両方に使用可能なパブリック API を示し、stable はコンパイル時と実行時の両方にデフォルトで使用可能な安定的サード・パーティー仕様 API を示します。 classloader エレメントの apiTypeVisibility 属性に third-party を含めると、サード・パーティー API が使用可能になります。

    server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、API タイプの可視性を構成します。
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="spec, ibm-api, stable, third-party" commonLibraryRef="Alexandria" />
    </application>

    接頭部の + または - が API タイプに追加された場合、それらの API タイプは、API タイプのデフォルト・セットからそれぞれ追加または削除されます。 +third-party 接頭部は spec, ibm-api, api, stable, third-partyになります。 -api の接頭部を付けると、spec, ibm-api, stable になります。

    server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、API タイプの可視性を構成します。
    <application id="scholar" name="Scholar" type="ear" location="scholar.ear">
      <classloader apiTypeVisibility="+third-party, -api" commonLibraryRef="Alexandria" /> 
    </application>
  2. アプリケーションが共通ライブラリーを使用している場合は、同じ API タイプの可視性設定を使用するようにそのライブラリーを設定します。
    server.xml ファイルまたは組み込みファイルで、以下のコードを追加します。
    <library id="Alexandria" apiTypeVisibility="spec, ibm-api, stable, third-party">
      <fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
    </library>