EclipseLink в OSGI Bundle persistence.xml не найден - PullRequest
3 голосов
/ 31 января 2011

У меня проблемы с EclipseLink.Я использую GlassFish v3.1 и пытаюсь использовать EclipseLink для моего слоя персистентности.Я следовал всем учебникам, доступным на вики Eclipse, без удачи.Мой файл persistence.xml не может быть проанализирован, и я получаю эту ошибку при попытке создать EntityManagerFactory:

org.eclipse.persistence.exceptions.PersistenceUnitLoadingException Исключение Описание: При обработке persistence.xml возникло исключениес URL: 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>

Iдобавил эту строку в мой MANIFEST.MF:

JPA-PersistenceUnits: generic

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Теперь я могу подтвердить, что это ошибка в EclipseLink. Чтобы обойти эту проблему, нужно либо воспользоваться EntityManagerFactory, используя поиск JNDI, либо @PersistenceUnit, а не делать Persistence.createEntityManagerFactory ().

0 голосов
/ 01 февраля 2011

1) Похоже, вы пытаетесь использовать OSGi / JPA из вашей WAB. Правильный? 2) Можете ли вы сказать, если вы установили какие-либо новые пакеты eclipselink в вашей системе? Если так, то кто они? 3) Можете ли вы предоставить трассировку стека?

...