JPA with Eclipselink MySQL jdbc in Eclipse RAP/RCP



系统概述:

  • Eclipse Indigo for RAP RCP devs, RAP 1.4 Target Components, Dali JPA, Jre1.6.0_33 (Java1.6SE)
  • Local Oracle MySQL DB
  • 所有JPA(持久性)+Eclipse链接OSGi捆绑包导入到项目中(根据eclipse wiki)
  • OSGi 捆绑包包含 com.mysql.jdbc.Driver 类导入到项目中(最新的 5.1.21 ? 来自 Oracle 页面)
  • 通过JPA创建的持久性插件,带有JDBC驱动程序,正确的MySQL DB路径,正确的密码和用户(添加了对com.mysql.jdbc捆绑包的依赖)

要避免类加载器问题,请执行以下操作:

  • bundle/plugin com.mysql.jdbc 在其 MANIFEST 中。MF:捆绑好友策略:已注册
  • org.eclipse.persistence.core & org.eclipse.persitence.jpa 和我的"持久性捆绑包"Buddy 在他们的清单中注册。MF : Eclipse-RegisterBuddy:com.mysql.jdbc + 他们为此捆绑包添加了依赖关系 com.mysql.jdbc

问题:

即使在之前的所有步骤之后,我仍然有: ClassNotFoundException - Driver not found

备注:

  • 从 Eclipse DatabaseConnection 内部测试与 localhost mysql db 的连接,使用了来自捆绑包 com.mysql.jdbc (class com.mysql.jdbc.Driver) 的相同驱动程序 [OK]
  • 如果 org.apache.derby 带有嵌入式驱动程序的嵌入式数据库用于持久性(而不是 mysql)(使用相同的好友策略),则不会出现问题 - 一切正常

问题:

  • 即使应用了BuddyPolicy,类加载器仍然有问题吗?
  • 当它用作OSGi捆绑包时,驱动程序本身会有问题吗?
  • 有没有人尝试过在RCP或RAP中将这个com.mysql.osgi捆绑包与JPA + Eclipselink一起使用?

我在 mysql.jdbc 捆绑包中发现了问题,该捆绑包没有为 JDBC 类驱动程序定义类路径(我的错误,我可能监督了这一点)...我还检查了PAX JPA,我认为在我更改了OSGi捆绑包的MYSQL JDBC捆绑包和Buddy Policy之后,现在不需要PAX JPA。我想保持简单:Equinox + Eclipselink JPA+JDBC驱动程序。我现在解决了所有问题。一切都很好。

最新更新