带有eclipselink和derby数据库的Eclipse插件项目

带有eclipselink和derby数据库的Eclipse插件项目,eclipse,eclipselink,derby,rcp,Eclipse,Eclipselink,Derby,Rcp,我用eclipselink创建了一个java应用程序,如下所示 但我不能用插件项目来实现这一点。我将derby.jar、eclipselink.jar和java.persistence_2.0.3.jar添加到构建路径中。我还将javax.persistence和org.apache.derby.jdbc作为导入包添加到Dependences选项卡中MANIFEST.MF的依赖项中 我的persistence.xml与MANIFEST.MF一起位于META-INF文件夹中 我的persiste

我用eclipselink创建了一个java应用程序,如下所示

但我不能用插件项目来实现这一点。我将derby.jar、eclipselink.jar和java.persistence_2.0.3.jar添加到构建路径中。我还将javax.persistence和org.apache.derby.jdbc作为导入包添加到Dependences选项卡中MANIFEST.MF的依赖项中

我的persistence.xml与MANIFEST.MF一起位于META-INF文件夹中

我的persistence.xml看起来像

<?xml version="1.0" encoding="UTF-8" ?>
<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="todos" transaction-type="RESOURCE_LOCAL">
<class>Tutorial.Todo</class>
<properties>
    <property name="javax.persistence.jdbc.driver"value="org.apache.derby.jdbc.EmbeddedDriver" />
    <property name="javax.persistence.jdbc.url" value="jdbc:derby:simpleDb;create=true" />
    <property name="javax.persistence.jdbc.user" value="test" />
   <property name="javax.persistence.jdbc.password" value="test" />


   <property name="eclipselink.ddl-generation" value="create-tables" />
   <property name="eclipselink.ddl-generation.output-mode" value="database" />
     </properties>

</persistence-unit>

必须将
提供程序
添加到
persistence.xml

...
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
...
!ENTRY org.eclipse.osgi 4 0 2012-04-17 20:54:18.568
!MESSAGE Application error
!STACK 1
javax.persistence.PersistenceException: No Persistence provider for EntityManager named todos
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at rcptest.Application.start(Application.java:30)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
An error has occurred. See the log file
C:\dev\runtime-RcpTest.application\.metadata\.log.
...
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
...
<?xml version="1.0" encoding="UTF-8" ?>
<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">

    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

    <persistence-unit name="todos" transaction-type="RESOURCE_LOCAL">
        <class>Tutorial.Todo</class>

        <properties>
            <!-- your properties -->
        </properties>
    </persistence-unit>

</persistence>