2012-08-15 84 views
1

系統概述的EclipseLink MySQL的JDBC:JPA與在Eclipse RAP/RCP

  • 的Eclipse靛藍爲RAP RCP開發者,RAP 1.4目標組件,大理JPA,Jre1.6.0_33(Java1.6SE)
  • 本地Oracle MySQL數據庫
  • 所有JPA(持久性)+項目導入Eclipse中的鏈接OSGi包(根據維基蝕)包含在項目進口com.mysql.jdbc.Driver類
  • OSGi包(最新5.1.21?來自Oracle頁面)
  • 持久性插件經由JPA創建的,與JDBC驅動,正確MySQL數據庫的路徑,正確的密碼&用戶(加入依賴性com.mysql.jdbc束)

爲了避免類加載器的問題:

  • 束/插件com.mysql.jdbc在其MANIFEST.MF:捆綁-BuddyPolicy:註冊
  • org.eclipse.persistence.core & org.eclipse.persitence.jpa和礦「持久性bundle」具有好友在其MANIFEST.MF註冊:Eclipse-RegisterBuddy:com.mysql.jdbc +他們已經增加了對這個包的依賴com.mysql.jdbc

問題:

即使前面的所有步驟後,我還有: ClassNotFoundException - Driver not found

備註:

  • 連接到本地主機的MySQL數據庫在Eclipse的DatabaseConnection內部測試,使用相同的驅動程序來自bundle com.mysql.jdbc(類com.mysql.jdbc.Driver )[OK]
  • 如果org.apache.derby嵌入式數據庫與嵌入式驅動程序用於持久性(而不是MySQL的)(具有相同的好友政策),問題不會出現 - 一切正常

問:即使應用BuddyPolicy

  • 會不會是問題仍然類加載器?
  • 當它用作OSGi捆綁軟件時,它可能是驅動程序本身的問題嗎?
  • 有人試圖在RCP或RAP中使用此com.mysql.osgi包以及JPA + Eclipselink?

回答

0

我發現mysql.jdbc捆綁問題其中有定義的JDBC驅動程序類無類路徑(我的錯誤,我可能這個監督)...我還檢查PAX JPA,我認爲PAX JPA現在沒有必要在我改變了MYSQL JDBC捆綁和Buddy策略的OSGi捆綁之後。我想保持簡單:Equinox + Eclipselink JPA + JDBC驅動程序....我現在解決了所有問題。一切都很好。