OSGiで開発しているときに、次の障害に遭遇しました。永続性を担当するバンドルの1つのセットは、com.mysql.jdbc.Driver
別の(Springsource EBRプロビジョニングされた)バンドルによって提供されるクラスを使用します。別のバンドルでは、データベースをジョブストアとして使用するようにQuartzスケジューラライブラリを構成しています。これもMySQLドライバーを使用して行われます。ただし、実行すると、が表示されClassNotFoundException
ます。永続性はまだ正しく機能しているため、これは奇妙です。さらに奇妙なことに、クラスを手動でロードしようとすると、Class.forName("com.mysql.jdbc.Driver")
それを使用して正しくロードされ、クラスが実際にロード可能であることを意味します。
偶然かどうかにかかわらず、同じことがDroolsでも起こっているようです...私は最新のDrools jarのいくつかをOSGiバンドルとして再パッケージ化し、それらをデプロイし、再度実行するとClassNotFoundException
ポップアップします。どちらの場合も、すべてのサプライヤバンドルがマニフェストの必要なバンドルに追加されます。
この奇妙な問題は何か鐘を鳴らしますか?それについて聞いてうれしいです...