Сегодня я остановился на этом вопросе и немного покопался в нем. Я нашел ответ @ Javi полезным, но он не решил мою проблему. Еще десятки минут поиска в Google заняли у меня следующие сведения:
Валидатор Hibernate в версии 4.0.2.GA (и, вероятно, также в других) обнаруживает версию JPA по классу javax.persistence.PersistenceUtil
, поскольку этот класс NOT содержится в JPA 1, но это в JPA 2. К сожалению, некоторые библиотеки реализуют этот класс, что делает Hibernate немного запутанным. В этом случае он пытается использовать JPA 2 также в среде Java 1.5, которая выдает исключение, упомянутое в вопросе.
Решение простое. Найдите в библиотеке добавление этого класса и удалите его. В моем случае это было ejb3-persistence-1.0.1.GA.jar
. Об этой ошибке сообщалось давно, и в версии ejb3-persistence-1.0.2.GA.jar
она исправлена. Вот так это обновление решило проблему в моем случае.