1

システムの概要:

  • Eclipse Indigo for RAP RCP開発者、RAP 1.4ターゲットコンポーネント、Dali JPA、Jre1.6.0_33(Java1.6SE)
  • ローカルオラクルmysqlデータベース
  • プロジェクトにインポートされたすべてのJPA(永続性)+ EclipseリンクOSGiバンドル(eclipse wikiによる)
  • プロジェクトにインポートされたcom.mysql.jdbc.Driverクラスを含むOSGiバンドル(最新の5.1.21?Oracleページから)
  • jdbcドライバー、正しいmysql dbパス、正しいパスワードとユーザーを使用してJPA経由で作成された永続プラグイン(com.mysql.jdbcバンドルに依存関係を追加)

ClassLoaderの問題を回避するには:

  • bundle / plugin com.mysql.jdbcのMANIFEST.MFには次のものがあります。Bundle -BuddyPolicy:登録済み
  • org.eclipse.persistence.core org.eclipse.persitence.jpaと私のMANIFEST.MFにBuddyが登録されている「persistencebundle」: Eclipse - RegisterBuddy :com.mysql.jdbc +このバンドルに依存関係を追加しましたcom.mysql .jdbc

問題:

前のすべてのステップの後でも、私はまだ持っています: ClassNotFoundException - Driver not found

述べる:

  • Eclipse DatabaseConnection内からテストされたローカルホストmysqldbへの接続、バンドルcom.mysql.jdbc(クラスcom.mysql.jdbc.Driver)からの同じドライバーを使用[OK]
  • org.apache.derby Embedded db with Embeded driverが永続性に使用されている場合(mysqlの代わりに)(同じBuddyポリシーを使用)、問題は発生しません-すべてが正常に機能します

質問:

  • BuddyPolicyが適用されたとしても、ClassLoaderで問題が発生する可能性はありますか?
  • OSGiバンドルとして使用する場合、ドライバー自体に問題が発生する可能性がありますか?
  • 誰かがこのcom.mysql.osgiバンドルをRPPまたはRAPでJPA+Eclipselinkと一緒に使用しようとしたことがありますか?
4

1 に答える 1

0

JDBCクラスドライバーにクラスパスが定義されていないmysql.jdbcバンドルに問題が見つかりました(私の間違い、おそらくこれを監視しました)... PAX JPAもチェックしましたが、MYSQL JDBCバンドルを変更した後、PAX JPAは必要ないと思いますOSGi バンドルのバディ ポリシー。シンプルに保ちたい: Equinox + Eclipselink JPA+JDBC ドライバー....すべての問題を解決しました。すべてが正常に動作します。

于 2012-10-12T15:33:21.030 に答える