Подтвердить что ты не робот

Eclipse не распознает содержимое persistence.xml

Im получает следующую ошибку в eclipse:

Файл persistence.xml не имеет распознанного содержимого.

Мой файл persistence.xml отлично работает в моем приложении, но eclipse продолжает давать мне эту ошибку. Я получил это после перемещения файла и обновления моей конфигурации проекта с помощью m2eclipse. Я не изменил сам файл. Кто-нибудь знает, как это решить?

persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
    <persistence-unit name="localDB" transaction-type="RESOURCE_LOCAL">

        <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
        <class>package.Users</class>
        <properties>
            <!-- enable warnings for debugging -->
            <property name="openjpa.Log" value="DefaultLevel=TRACE, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
            <!-- connection properties -->
            <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/test"/>
            <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
            <property name="openjpa.ConnectionUserName" value="root"/>
            <property name="openjpa.ConnectionPassword" value=""/>

        </properties>
    </persistence-unit>
</persistence>

Обновление

Похож на ошибку в m2eclipse в сочетании с jpa.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=251323

Временно решена, установив параметр, чтобы показать его как предупреждение вместо ошибки

4b9b3361

Ответ 1

Я исправил проблему следующим образом (я использую RAD v8.5.1):

  • Windows → Настройки → Проверка
  • Прокрутите вниз до "JPA Validator" и нажмите "Эллипсы" в разделе "Настройки".
  • Нажмите кнопку "Добавить группу включения...".
  • Нажмите на новую группу Include, которая, как представляется, выделит ее.
  • Нажмите кнопку "Добавить правило...".
  • Появится диалоговое меню. Нажмите переключатель "Папка или имя файла" и нажмите "Далее".
  • Нажмите "Обзор папки..." и перейдите в свой каталог src (в моем случае это был "src/main/resources" ) в вашем проекте (мой проект был .war в приложении с несколькими модулями) в вашей рабочей области.
  • Нажмите "Готово".
  • Нажмите "ОК". Это вызовет полную сборку.
  • Ошибка исчезнет.

Ответ 2

Была ли та же проблема с ошибкой

Файл persistence.xml не распознает контент

Исправлено редактированием файла в eclipse, любое редактирование будет выполнено. И после того, как сэкономленная ошибка исчезла.

Ответ 3

<persistence 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_2_0.xsd"
version="2.0">

Работал для меня!

Ответ 4

Я понял, в чем проблема. JPA Facet предполагает, что папка META-INF находится прямо под исходной папкой. Если вы используете проект Maven, у вас, вероятно, есть что-то вроде src/main/resources или src/test/resources. Если ваш persistence.xml находится под этими папками, он будет жаловаться. Если вы создаете новую исходную папку (назовите ее "jpa" ) и создайте там META-INF/persistence.xml, она найдет ее успешно. (Я также должен был выполнить проект "чистый/закрытый/открытый" )

Это, безусловно, боль.... и я вижу много ситуаций, что это не сработает.

Ответ 5

У меня была такая же проблема в Eclipse 3.6 (Helios). Дело в том, что JPA Facet был установлен в JPA версии 1.0, однако мой файл persistence.xml указывал JPA Version 2. Поэтому я изменил JPA Facet на версию 2.0, и проблема исчезла. (Проект → Свойства → Границы проекта → "Конфигурация" - выберите "Минимальная конфигурация JPA 2.0"

Ответ 6

Превращение этой ошибки в предупреждение может привести к тому, что проблема исчезнет, ​​но она не устранит основную проблему с плагином Eclipse Dali. Это также означает, что чрезвычайно полезная структура JPA Structure и JPA Details не будет работать.

Ссылка, предлагаемая OP и подход большинства ответов здесь, на самом деле предназначена для решения другой проблемы, в которой Maven хочет отфильтровать файл persistence.xml и, таким образом, говорит Eclipse игнорировать его. Жизненная работа для этой проблемы объясняется здесь и включает удаление исключенного: '**' из записи src/main/resources в classpath в свойствах проекта.

Вернемся к исходному вопросу OP, у меня было это ТОЧНОЕ такое же сообщение об ошибке (которое в самом начале и говорит о том, что файл persistence.xml был найден). Для меня решение заключалось в том, чтобы изменить XML-элемент persistence:

<persistence 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"
    version="1.0">

:

<persistence 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_2_0.xsd"
    version="2.0">

После изменения ошибка исчезла, и Дали мгновенно ожил, и теперь все просто работает. Надеюсь, это когда-нибудь поможет кому-то.

Ответ 7

Ошибка появилась в некоторых версиях Indigo (3.7). Смотрите здесь: https://bugs.eclipse.org/bugs/show_bug.cgi?id=357810

Щелкните правой кнопкой мыши проект → Maven → Обновить конфигурацию проекта...

Это может привести к разрушению определенных записей пути сборки и/или сборки развертывания, что очень раздражает, поэтому делайте это только при изменении Maven-операций.

Чтобы обойти сообщение persistence.xml до тех пор, пока не будет выпущено исправление, необходимо очистить проект от многих операций, поскольку даже установка уровня ошибки "игнорировать" не работает. Это полный облом.

Ответ 8

Я исправил это, перейдя в Project - Properties - Java Persistence: а затем установив "Source Folder" в разделе "Каноническая метамодель (JPA 2.0)" в: "src/generated/resources"

Ответ 9

Любые обновления по этому вопросу? Это все еще проблема, кажется, правильно? Если я создаю проект JPA, конвертирую в проект Maven, появляется ошибка, и я не могу избавиться от нее с помощью любого из рекомендуемых методов.

Edit

Итак, после маневрирования некоторых папок вокруг этого в фактическом формате каталога Maven он все равно не работал - но создание связанной папки в разделе src/main/java с именем META-INF, связанным с src/main/resources/META-INF, оно было разрешено.

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

Ответ 10

Эти проблемы возникают, если вы

  • Преобразование проекта JPA в проект Maven или
  • Добавить фасет JPA в проект Maven.

Решение

  • Выберите Windows > Настройки > Проверка
  • Отключить валидатор JPA как для проверки вручную, так и для проверки сборки

После изменения этих параметров очистите проект.

Ответ 11

Я использую eclipse mars и имею такую ​​же точную ошибку. Я должен был сделать 1 вариант версии jpa для фасет проекта. right click project -> Properties -> Project Facets Установите версию jpa в 2.1 в моем случае.

Примечание: Просто настройка фасет проекта jpa не приведет к удалению ошибки. Вам также необходимо настроить платформу.

Затем мне пришлось настроить платформу JPA. right click project -> Properties -> JPA. Измените platoform, чтобы быть Hibernate 2.1 в моем случае.

Эта проблема также проявляется, когда вы открываете persistence.xml с помощью XML-редактора Persistence XML, и у вас есть только одна вкладка Source внизу, а не другие вкладки для "Общие", "Соединение", "Свойства", "Свойства" и т.д.

Ответ 12

У меня проблема устранена путем создания "символической ссылки" в Eclipse. Итак, мой файл persistence.xml остается в src/main/resources/META-INF, так как Maven ожидает, и требуется m2eclipse. Однако, чтобы исправить проблемы Dali, создайте новый файл в src/main/java/META-INF, который ссылается на файл src/main/resources/META-INF. Вы делаете это, нажимая "Расширенные" параметры при создании нового файла и поиске файла с помощью кнопки "Обзор...". Обратите внимание: это не приведет к созданию физического файла в папке META-INF, однако для создания ссылки вам понадобится сама папка.

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

Ответ 13

У меня было src/main/java/META-INF/persistence.xml работающее нормально в Eclipse со встроенным Tomcat. Поскольку он не копировался в Maven-built WAR, я переместил его в src/main/resources/META-INF.

Теперь src/main/resources/META-INF/persistence.xml не будет проверяться.

Если переименовать в xyz_persistence.xml, он проверяет штраф.
Если переименовать в persistence.xml, он не может проверить.

Когда возникают такие неприятные ситуации, я часто нахожу множество различных "решений", подобных моим, большинство из которых не являются универсальными.

Итак, вот мое "решение", которое я считаю взломанным, чтобы обойти ошибку:

Чтобы удалить ошибку, "ошибка файла persistence.xml не распознана", отключите функцию проверки подлинности JPA:

  • Элемент списка Выберите пункт меню "Проект" > "Свойства" > "Настройки" > "Проверка"
  • Элемент списка Отключите JPA Validator как для проверки вручную, так и для проверки сборки.

Возможно, вам потребуется очистить и перестроить. Ваш пробег может отличаться.

Ответ 14

enter image description here Нет необходимости изменять все в вашем XML файле и не нужно добавлять xml в папку src. Поместите файл persistance.xml в папку META-INF, а затем установите папку META-INF src/main/resource. Попробуйте следующий подход: Щелкните правой кнопкой мыши по project> Java Build path > Source Tab > ProjectName/src/main/resource > set Included(All) and Excluded(None)., затем очистите и создайте свой проект. Это сработает для вас. Пробовал этот подход на RAD 7 и 8..5 и Eclipse.

Ответ 15

Где вы находитесь в структуре проекта, находится файл?

Для ref, у меня есть мой в maven-module-name/src/main/resources/META-INF/

Ответ 16

Сложно сказать, потому что трудно воспроизвести (ваш persistence.xml вполне допустим), но, возможно, попробуйте:

  • Очистите проект (как "Проект > Очистить", так и Maven clean)
  • Принудите Eclipse снова проверить файл XML (щелкните правой кнопкой мыши и выберите "Проверить файл XML" ).

Ответ 17

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

Ответ 18

Я столкнулся с той же проблемой. Перейти к свойствам проекта → Java build path → source, remove */. Java excluded атрибут источника src/main/resources. Затем добавьте META-INF/persistence.xml. Затем перезапустите eclipse. Вы должны persistence.xml под содержимым JPA в Project explorer. После этого отмените свои изменения.

Хорошо, что я предлагаю выглядеть глупо, но волшебным образом это работает. Кстати, моя версия затмения 3.6.

Ответ 19

Проблема была зафиксирована в Indigo (выпущена в июне 2011 г.), см. https://bugs.eclipse.org/bugs/show_bug.cgi?id=251323#c24 и https://issues.sonatype.org/browse/MECLIPSEWTP-11.

"Файл persistence.xml не имеет распознанного содержимого". ошибка может по-прежнему появляться в случайном порядке при импорте проекта или при запуске Workspace, но может быть исправлена ​​с помощью проекта или обновления проекта maven. Это будет зафиксировано в Dali в SR2.

Ответ 20

У меня была такая же проблема, чтобы убрать ее. Я должен был убедиться, что эта строка была самой первой строкой в ​​верхней части файла (без начальных пустых строк или пробелов):

<?xml version="1.0" encoding="UTF-8"?>

Ответ 21

У меня была такая же ошибка, но я решил ее по-другому.

Дело в том, что META-INF следует считать исходной папкой, и, поскольку это было в /ejbModule (мой проект EJB), я предположил, что он находится на пути сборки. И это не так. Фактически это было в списке "исключить" на пути сборки. Итак, все, что я сделал, это щелкнуть правой кнопкой мыши папку META-INF в представлении Project Explorer и выбрать INCLUDE в меню "Путь сборки". Затем я попросил Eclipse очистить проект, и все снова было правильно.

С наилучшими пожеланиями.

Ответ 22

У меня была такая же проблема. Мое решение: щелкните правой кнопкой мыши файл persistence.xml → JPA-Tools → Синхронизировать список классов. После этого он был разрешен.

Ответ 23

В моем случае это был плагин Maven, у которого есть ошибка, которая устанавливает "Исключить". в пути сборки для вашей папки ресурсов. Удаление. решил проблему для меня

Ответ 24

Я исправил это, перетащив папку META-INF в src/main/resources и перетащив ее обратно в src/test/resources. Это все, что мне понадобилось, чтобы решить проблему. Я пробовал выше, учитывая все шаги, но ни один из них, похоже, не работает для меня, и, наконец, этот трюк сделал.

Ответ 25

просто решил проблему, выполнив следующие действия:

  • в schemaLocation, я удалил "h ttp://java.sun.com/xml/ns/persistence/", сделав его:

xsi: schemaLocation = "http://java.sun.com/xml/ns/persistence persistence_2_0.xsd"

  • Я добавил <?xml version="1.0" encoding="UTF-8"?> вверху.

  • Я очищаю проект. ошибка прошла.

  • Я снова добавил "h ttp://java.sun.com/xml/ns/persistence/":

xsi: schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"

  • Я очищаю проект. Ошибка не существует.

  • i удалено <?xml version="1.0" encoding="UTF-8"?> вверху.

  • Я очищаю проект. ошибка все еще не существует.

надеюсь, что это поможет кому-то в будущем.

Ответ 26

Хорошо... другое довольно надежное решение, которое сработало для меня, поскольку самые лучшие из них не выполнялись:

  • так как я использовал Mercurial и мог легко вернуться без каких-либо заметных отличий в текущей и последней версиях, он работал так:

  • (совершил некоторые важные изменения, не связанные с этой проблемой)

  • переход на предыдущую версию репо
  • (auto/refresh/-rebuild работает нормально)

Я понял, что проблема может быть связана с тем, что Java Builder не сгенерировал мои war/WEB-INF/classes/ файлы. Следующее не помогло следовать этому пути, позволив ему построить мой проект:

  • отключить/переконфигурировать валидаторы, сборщики, грани (пока там не было Java Builder/Facet)
  • переименование persistence.xml или его изменение различными способами

который не помог ему, как будто какое-то внутреннее состояние не может быть изменено.

Ответ 27

Для меня это сработало, как только я очистил все сообщения от вкладки Маркеры в затмении