2014-02-11 3 views
1

Мой проект JPA отлично работает на 32-битных Windows 7 с 32-битной Eclipse IDE, но то же самое не работает с 64-битной Windows 8 с 32-битной средой eclipse. В этом проекте я подключаюсь к MS-Access, создавая «User DSN» (по имени MyBuzzDB). Для 64-разрядной ОС я создал User DSN в своем 32-битном диалоге ODBC.Отсутствует поставщик сущности для EntityManager с именем MyBuzzPersistence

У меня есть все JAR в моем проекте.

Любая помощь будет высоко оценена.

Вот мой persistence.xml:

<?xml version="1.0" encoding="UTF-8"?> <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="MyBuzzPersistence"> 
    <provider>oracle.toplink.essentials.PersistenceProvider</provider> 

    <class>com.myBuzz.entity.AuthenticateEntity</class> 
    <properties> 

    <property name="toplink.jdbc.url" value="jdbc:odbc:MyBuzzDB" /> 
    <property name="toplink.jdbc.user" value="" /> 
    <property name="toplink.jdbc.driver" value="sun.jdbc.odbc.JdbcOdbcDriver" /> 
    <property name="toplink.jdbc.password" value="" /> 

    </properties> 
</persistence-unit> 

</persistence>


Стек след:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named MyBuzzPersistence 
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) 
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source) 
at com.myBuzz.service.AuthenticationService.authenticateUser(AuthenticationService.java:17) 
at com.myBuzz.manager.AuthenticationManager.authenticateUser(AuthenticationManager.java:16) 
at com.myBuzz.test.DBTest.main(DBTest.java:21) 
+0

Это звучит как persistence.xml является не в правильном месте, он находится в META-INF? – Koitoer

+0

Это дубликат http://stackoverflow.com/questions/19322827/null-after-persistence-createentitymanagerfactorypersistence-unit-name/19327322#19327322 – cmd

+0

Большую часть времени мы будем получать эту ошибку и для других ошибок .if ваш persistence.xml находится в вашем META-INF, после чего вы можете отправить полный стек. Чтобы мы могли вам помочь. –

ответ

0

persistence.xml не в нужном месте ...

Вам нужно будет переместить файл persistence.xml в соответствующем месте, то есть добавить файл META-INF/persistence.xml в корневой папке источника.

Ниже от JPA спецификации:

A persistence.xml file defines a persistence unit. The persistence.xml file is 
located in the META-INF directory of the root of the persistence unit. 

Корень единицы сохранения является ключевым здесь.

Если вы приложение не-Java EE

The jar file or directory whose META-INF directory contains the persistence.xml 
file is termed the root of the persistence unit. 

Если вы находитесь в приложении Java EE, следующие действительны

In Java EE environments, the root of a persistence unit must be one of the following: 
• an EJB-JAR file 
• the WEB-INF/classes directory of a WAR file[80] 
• a jar file in the WEB-INF/lib directory of a WAR file 
• a jar file in the EAR library directory 
• an application client jar file 
Смежные вопросы