Ссылка на проект JPA из плагина Eclipse приводит к «PersistenceException: нет поставщика сохраняемости для EntityManager» - PullRequest
4 голосов
/ 30 июля 2009

Я пытаюсь создать приложение Eclipse, которое использует JPA для сохранения.
Я пытаюсь использовать EclipseLink в качестве моего провайдера (более конкретно org.eclipse.persistence.jpa.PersistenceProvider) и Derby в качестве базы данных.
В настоящее время у меня есть проект Eclipse JPA, который занимается всеми коммуникациями с базой данных и определяет объекты модели. Этот продукт проходит модульное тестирование и все работает.

Идея состоит в том, что мое приложение Eclipse использует этот проект для получения объектов модели, которые оно использует.
Проблема в том, что как только я пытаюсь создать EntityManager, я получаю исключение "No Persistence provider".

Я пытался ссылаться на проект JPA напрямую или сначала экспортировать его в банку и в зависимости от этого. Ни один не работал.

Теперь, насколько я могу догадаться, это либо означает, что он не видит мой файл persistence.xml, либо что поставщик постоянства отсутствует в моем пути к классам.

Файл персистентности находится в каталоге META-INF в корне моего фляги, так что, надеюсь, он должен быть найден. Я также добавил следующее к MANIFEST.MF плагина приложения:

 javax.persistence;bundle-version="1.99.0",
 org.eclipse.persistence.antlr;bundle-version="1.1.2",
 org.eclipse.persistence.asm;bundle-version="1.1.2",
 org.eclipse.persistence.core;bundle-version="1.1.2",
 org.eclipse.persistence.jpa;bundle-version="1.1.2"

Мы надеемся, что это приведет к тому, что необходимые классы будут доступны.

Кто-нибудь может увидеть, что мне не хватает? Есть ли способ узнать, какая из двух проблем может быть? Это одна из этих проблем?

Спасибо за любую помощь.

1 Ответ

3 голосов
/ 30 июля 2009

Примечание: текущий пример вики по-прежнему устарел (с августа 2008 г. ...)

Вы можете увидеть в их обновленном примере a средство запуска (со списком соответствующих плагинов)

Их MANIFEST.MF выглядит так:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Application Plug-in
Bundle-SymbolicName: org.eclipse.persistence.example.jpa.rcp.comics; singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.ui,
 org.eclipse.persistence.jpa,
 system.bundle,
 org.eclipse.persistence.example.jpa.comics.model.annotated;bundle-version="1.0.0",
 javax.persistence;bundle-version="1.99.0",
 org.eclipse.persistence.antlr;bundle-version="0.1.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .
Import-Package: org.apache.derby.jdbc

Может быть, использование этого примера поможет вам найти то, что неправильно в вашем приложении?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...