2008-09-16 2 views
9

Я пытаюсь загрузить тестовые данные в тестовую БД во время сборки maven для тестирования интеграции. persistence.xml копируется в target/test-classes/META-INF/ правильно, но я получаю это исключение при запуске теста.persistence.xml не найден во время тестирования maven

javax.persistence.PersistenceException: провайдер Нет Постоянство для EntityManager имени aimDatabase

Похоже, он не находит или погрузки persistence.xml.

ответ

2

Если это окно, вы можете использовать procmon sysinternal, чтобы узнать, проверяет ли он правильный путь.

Просто фильтруйте путь -> содержит -> persistence.xml. Procmon возьмет любые попытки открыть файл с именем persistenc.xml, и вы можете проверить, есть ли путь или пути, которые будут проверяться.

Смотрите здесь более подробно на ProcMon: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

2

У меня была такая же проблема, и это не было, что он не может найти файл persistence.xml, но он не может найти поставщика, указанного в XML.

Убедитесь, что в вашем файле XML есть правильная зависимость поставщика JPA и правильное определение поставщика.

ie. <provider>oracle.toplink.essentials.PersistenceProvider</provider>

С помощью maven я должен был установить 2 бачка с необходимыми компонентами, поскольку не было никаких публичных репозиториев, в которых сохранялись зависимости.

1

мы получили ту же самую проблему, делает некоторые настройки на проекте и, наконец найти следующие задачи (более четкое описание ошибки): на oracle.toplink.essentials.ejb.cmp3.persistence. PersistenceUnitProcessor.computePURootURL (PersistenceUnitProcessor.java:248)

С этой информацией мы отозваны первичным правилом: НЕТ пробельного ПУТЬ ИМЕН !!!

Попробуйте это. Работает для нас . Возможно, в какой-то день это будет исправлено.

Надеюсь, это сработает для вас. Удачи.

6

Я использую Maven2, и я забыл добавить эту зависимость в моем файле pom.xml:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.4.0.GA</version> 
</dependency> 
+0

очень хорошо! Моя ошибка тоже :) Спасибо – artaxerxe 2010-10-29 14:42:29

16

Просто решить ту же проблему с основанным Maven/Eclipse, проекта JPA.

У меня был каталог META-INF под номером src/main/java с тем, что он не был скопирован в целевой каталог до этапа тестирования.

Перемещение этой директории в src/main/resources решило проблему и гарантировало, что файл META-INF/persistence.xml присутствовал в target/classes при проведении тестов.

Я думаю что JPA фаска положить мой META-INF/persistence.xml файл в src/main/java, который оказался корень моей проблемы.

+0

+1: У меня была аналогичная проблема, и ваше предложение исправило это. – Raedwald 2012-05-10 22:36:03

1

Является ли ваше persistence.xml находящимся в scr/test/resources? Потому что я столкнулся с подобными проблемами.

Все работает отлично до тех пор, как мой persistence.xml находится в SRC/основные/ресурсов.

Если переместить persistence.xml к SRC/тест/ресурсы ничего не работает больше.

только полезным, но грустный ответ здесь: http://jira.codehaus.org/browse/SUREFIRE-427

Похоже, это не представляется возможным прямо сейчас по непонятным причинам. :-(

Смежные вопросы