以下の状況になりました。Apache Felix
OSGi サービスの実装Apache Karaf
として、また OSGi コンテナーとして使用しています。karaf
休止状態を介してデータベースにデータを保存する必要があるバンドルがありますが、常にSQLException: No Suitable Driver found.
展開されたmysql-connector-bundle
to を取得しkaraf
ます。問題は、私の考えでは、mysql-driver-packages
マッピングする必要があるクラスまたはクラスをインポートするかどうかにかかわらず、休止状態になることです。しかし、これを修正する方法がわかりません。私はバディポリシーがそのような問題を修正するrcpを日食することに慣れていますが、この問題のベストプラクティスはありfelix
ますkaraf
か?
2 に答える
Hibernate は他のバンドルの do データとクラスにアクセスできません (少なくともバージョン 3.x では、バージョン 4 については知りません)。すべて (hibernate を使用するメソッド、pojos、マッピング ファイル、すべてのライブラリ) が同じバンドルにある場合にのみ、簡単に機能します。他のバンドルのリソースにはアクセスできません。
このスレッドの私の回答も参照してください。
What version of hibernate do you use? Only since Hibernate 4, hibernate is aware of OSGi classloaders, and it still doesn't have complete OSGi support. See e.g. https://hibernate.onjira.com/browse/HHH-7527, which is planned for Hibernate 4.2.
We used Gemini JPA with eclipselink instead as JPA provider in OSGi.
In the karaf eco-system, there is Aries JPA, which is primarly used with OpenJPA. See Which JPA providers are supported by Apache Aries Managed JPA?