EclipseLink进入OSGI Bundle persistence.xml找不到

时间:2011-01-31 14:36:14

标签: java osgi eclipselink persistence.xml

我在使用EclipseLink时遇到了一些问题。我正在使用GlassFish v3.1,我正在尝试将EclipseLink用于我的持久层。我没有运气就遵循了Eclipse wiki上提供的所有教程。我的persistence.xml文件无法解析,我在尝试创建EntityManagerFactory时收到此错误:

  

org.eclipse.persistence.exceptions.PersistenceUnitLoadingException   异常描述:从URL处理persistence.xml时抛出异常:bundle://307.1:1 /

这是我的persistence.xml,位于/ WEB-INF / classes / META-INF /:

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/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_1_0.xsd">
    <persistence-unit name="generic">
        <class>com.generic.domain.Service</class>

        <properties>
            <!-- Embedded MySQL Login -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306"/>

            <!-- TODO: replace with connection pool -->
            <property name="javax.persistence.jdbc.userid" value="root"/>
            <property name="javax.persistence.jdbc.password" value=""/>

            <property name="eclipselink.target-database" value="MySQL"/>
            <property name="eclipselink.jdbc.read-connections.min" value="1"/>
            <property name="eclipselink.jdbc.write-connections.min" value="1"/>
            <property name="eclipselink.jdbc.batch-writing" value="JDBC"/>

            <!-- Logging Settings -->
            <property name="eclipselink.logging.level" value="FINE" />
            <property name="eclipselink.logging.thread" value="false" />
            <property name="eclipselink.logging.session" value="false" />
            <property name="eclipselink.logging.exceptions" value="true" />
            <property name="eclipselink.logging.timestamp" value="false"/>            
        </properties>
    </persistence-unit>
</persistence>

我将此行添加到我的MANIFEST.MF:

JPA-PersistenceUnits: generic

2 个答案:

答案 0 :(得分:1)

我现在可以确认它是EclipseLink中的一个错误。解决问题的方法是使用JNDI查找或@PersistenceUnit来获取EntityManagerFactory,而不是使用Persistence.createEntityManagerFactory()。

答案 1 :(得分:0)

1)看起来你正试图从你的WAB使用OSGi / JPA。正确? 2)您能告诉您是否在系统中安装了任何新的eclipselink捆绑包吗?如果是这样,他们是什么? 3)你能提供堆栈跟踪吗?