デフォルトでは、Java™ EE アプリケーションは、Liberty で使用可能なサード・パーティー API にアクセスできません。このアクセスを可能にするには、アプリケーションを server.xml ファイルまたは組み込みファイルで構成する必要があります。
このタスクについて
以下の例では、Scholar というアプリケーションは、Liberty で使用可能なサード・パーティー API にアクセスできる必要があります。
また、このアプリケーションは、Alexandria という共通ライブラリーを使用します。
このライブラリーは、${server.config.dir}/mylib/Alexandria ディレクトリーにあります。
トラブルの回避: サード・パーティーの API は、アップグレードの後に互換性が維持されない可能性があります。詳細については、『
Liberty の外部のサポート』を参照してください。
手順
- アプリケーションがサード・パーティー API にアクセスできるように、アプリケーション用のクラス・ロードを構成します。
classloader エレメントの apiTypeVisibility 属性のデフォルト値は spec,ibm-api,api です。ここで、spec はコンパイル時と実行時の両方に使用可能なパブリック仕様 API を示し、ibm-api は Liberty 内で使用可能な API を示し、api はコンパイル時と実行時の両方に使用可能なパブリック API を示しています。classloader エレメントの apiTypeVisibility 属性に third-party を含めると、サード・パーティー API が使用可能になります。
server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、API タイプの可視性を構成します。
<application id="scholar" name="Scholar" type="ear" location="scholar.ear">
<classloader apiTypeVisibility="spec, ibm-api, third-party" commonLibraryRef="Alexandria" />
</application>
- オプション: アプリケーションが共通ライブラリーを使用している場合は、同じ API タイプの可視性設定を使用するようにそのライブラリーを設定します。
server.xml ファイルまたは組み込みファイルで、以下のコードを追加します。
<library id="Alexandria" apiTypeVisibility="spec, ibm-api, third-party">
<fileset dir="${server.config.dir}/mylib/Alexandria" includes="*.jar" scanInterval="5s" />
</library>