В спецификации JPA 2.0 в разделе 8.2 изложены требования к упаковке. Это говорит
Персистентная единица определяется
файл persistence.xml. Jar файл или
каталог, чей каталог META-INF
содержит файл persistence.xml
называется корнем настойчивости
блок.
В средах Java EE корень
единица сохранения должна быть одним из
следующее:
- файл EJB-JAR
- каталог WEB-INF / classes файла WAR [80]
- файл jar в каталоге WEB-INF / lib файла WAR
- файл jar в каталоге библиотеки EAR
- файл jar клиента приложения
Не требуется, чтобы EJB-JAR или
WAR-файл, содержащий единицу сохранения
быть упакованным в EAR, если
единица постоянства содержит постоянство
классы в дополнение к тем, которые содержатся
в пределах EJB-JAR или WAR. Смотрите раздел
8.2.1.6.
Вы можете прочитать оставшуюся часть главы, если сочтете это необходимым. В Eclipse это означает, что вам нужно настроить зависимости между вашими проектами, чтобы обеспечить правильную упаковку файлов развертывания. Обычно это настраивается в Project-> Properties-> Build Path на вкладке Projects.
Однако я не уверен, что Eclipse упаковывает его так, как требуется для развертывания веб-сервера. Я знаю, что это происходит в проекте EAR.