この記事は、Weblogic 内で実行されている場合に、JavaMail(javax.mail パッケージのクラス)と Java Activation(javax.activation パッケージのクラス)を伴う作業についてです。
AEM が Weblogic 内で実行されている場合、JavaMail の機能はアプリケーションサーバーによって提供されます。JRE のバージョンによっては、JRE または Weblogic によって Java Activation が提供されます。
この場合、JavaMail と JavaActivation を使用するには、これらのバンドルをアンインストールする必要があります。
- JavaMail API (javax.mail)
- Apache Sling javax.activation バンドル(org.apache.sling.javax.activation)
その後、関連付けられたパッケージをシステムバンドルによって提供する必要があります。これらのバンドルのシステムバンドル拡張のフラグメントをインストールすることによってこれを行うことができます。これを行う方法についてのシステムバンドル拡張の行い方に関するこの記事を参照してください。フラグメントに書き出したパッケージのエクスポートされたバージョンが、アプリケーションサーバー/JRE によって提供されるバージョンと必ず一致するように注意しなくてはならない。
システムバンドル拡張の別のアプローチは、これらのパッケージがシステムバンドルによって提供されると書き出すフレームワークプロパティを追加することです。親クラスローダー親から継承するため。これは、以下の行を含む sling.properties ファイルを変更することによって行われます。(この行は Java Activation のみを表示)
org.osgi.framework.system.packages.extra=javax.activation; version\=1.1
ここでも、正しいバージョンがエクスポートのために使用されていることを確認することが重要です。JRE に含まれている Java Activation のバージョンは 1.1 です。JavaMail のバージョンに関する情報がそのまま OSGi Protable Java Contracts ページで検索できます:http://www.osgi.org/Specifications/ReferenceContract。