我目前正在研究Felix的OSGi项目(v4.0.3).我需要使用JPA,所以我安装了Apache Aries JPA包.我还安装了OpenJPA,我需要它使用MySQL Connector Bundle连接到MySQL数据库.不幸的是它不起作用,OpenJPA说它无法找到MySQL JDBC类,我无法弄清楚什么是坏的,也许我做错了.我将在下面解释我安装的内容以及persistence.xml文件和我得到的实际异常.
这是我安装的Apache Aries软件包列表:
然后我安装了那些Apache Aries JPA包的依赖项.我从Springsource下载了它们:
我还安装了OpenJPA及其所有依赖项.我在apache-openjpa-2.2.0下载文件夹的lib文件夹中找到了bundle 2到5(commons-*).我在这里下载了Serp ,因为在lib文件夹中找到的jar不是OSGi包.最后我找到了Springsource中的最后两个包(#7和#8):
一旦我最终安装了OpenJPA,我仍然需要MySQL JDBC Driver包,我也从Springsource存储库获得了它的commons-logging依赖:
现在,此时安装的软件包列表变得非常庞大.我说我安装了OpenJPA,但这只是因为我无法弄清楚如何使用任何其他提供商与Aries.我最初想使用EclipseLink,但显然Apache Aries没有检测到它作为提供者,根据这个博客,你必须制作另一个包含你自己的激活器的包,让Aries注意到EclipseLink.我尝试了但它没有用,所以我又回到了使用OpenJPA.
所以现在我有两个问题:
或者:
这是我使用的persistence.xml文件:
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="userManager.model" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>org.project.dao.entity.UserEntity</class>
<properties>
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/usermanager?autoReconnect=true" />
<property name="openjpa.ConnectionUserName" value="root" />
<property …Run Code Online (Sandbox Code Playgroud)