以下の状況になりました。Apache FelixOSGi サービスの実装Apache Karafとして、また OSGi コンテナーとして使用しています。karaf休止状態を介してデータベースにデータを保存する必要があるバンドルがありますが、常にSQLException: No Suitable Driver found.
展開されたmysql-connector-bundleto を取得し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?