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

Ошибка в схеме контекста приложения spring

У меня есть проект maven- spring в Eclipse, и у меня есть это раздражающее сообщение об ошибке в одном из моих контекстов spring:

Связанный файл содержит ошибки (jar: файл:/M2_HOME/репозиторий/org/springframework/ spring - beans/3.1.2.RELEASE/spring - beans -3.1.2.RELEASE.jar!/орг/springframework/beans/  factory/XML/spring -tool-3.1.xsd). Для получения дополнительной информации щелкните правой кнопкой мыши сообщение в окне "Проблемы" и выберите "Показать детали..."

Сеты для шоу приводят к следующему:

enter image description here

Я использую spring -data-jpa 1.2.0.RELEASE, а остальные мои spring - 3.1.3.RELEASE. Что касается spring -data-commons-core - у меня даже нет зависимости от этого баннера в моем pom, но я вижу его в моем репозитории m2 вместе с spring -data-commons-parent и обе версии 1.4.0.RELEASE, я не знаю, почему (возможно, это часть spring -data-jpa?).

Схема моего приложения:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
   http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">

Я не понимаю, почему я продолжаю получать эту ошибку. В принципе, это не влияет на то, что когда-либо было. Приложение компилируется, развертывается и работает очень хорошо, это просто эта неприятная красная ошибка в Eclipse, которая сводит меня с ума:)

4b9b3361

Ответ 1

Я решил это, выполнив 3 вещи:

  • Добавил этот репозиторий в мой POM:

    <repository>
        <id>spring-milestone</id>
        <name>Spring Maven MILESTONE Repository</name>
        <url>http://repo.springsource.org/libs-milestone</url>
    </repository>
    
  • Я использую эту версию spring -jpa:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>1.2.0.RELEASE</version>
    </dependency>
    
  • Я удалил версии xsd из моего контекста (хотя я не уверен, что это необходимо):

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
      xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
       http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
    

Надеюсь, это поможет.

Ответ 2

Недавно у меня была аналогичная проблема в последнем Eclipse (Kepler) и исправлена ​​ее, отключив опцию "Почитайте все расположения схем XML" в разделе "Настройки" > "XML" > "Файлы XML" > "Проверка". Он отключает проверку ссылок на те же пространства имен, которые указывают на разные местоположения схемы, только если первое обнаружено в основном в файле XML, который проверяется. Этот параметр исходит из библиотеки Xerces.

WTP Doc: http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/sourceediting.php

Xerces Doc: http://xerces.apache.org/xerces2-j/features.html#honour-all-schemaLocations

Ответ 3

Что я сделал с spring -data-jpa-1.3, я добавил версию xsd и опустил ее до 1.2. Затем сообщение об ошибке исчезнет. Как этот

<beans
        xmlns="http://www.springframework.org/schema/beans"
        ...
        xmlns:jpa="http://www.springframework.org/schema/data/jpa"
        xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    ...
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa-1.2.xsd">

Кажется, что он был исправлен для версии 1.2, но затем снова появляется в 1.3.

Ответ 4

Иногда файл spring config xml работает неправильно при открытии следующего затмения.

Он показывает ошибку в файле xml, вызванную определением схемы, независимо от того, заново затмение или проект очистки не работают.

Но попробуйте это!

Щелкните правой кнопкой мыши файл spring config xml и выберите validate.

Через некоторое время ошибка исчезнет, ​​и eclipse сообщает, что в этом файле нет ошибки.

Какая шутка...

Ответ 5

У меня недавно была такая же проблема со Spring 4.0.

Это было вызвано коллизиям имен из spring-beans-4.0.xsd и spring-context-4.0.xsd. Открыв spring-context-4.0.xsd, вы увидите, что spring-beans-4.0.xsd импортируется следующим образом:

<xsd:import namespace="http://www.springframework.org/schema/beans"  
schemaLocation="http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"/>

Эти конфликты имен заставляют Eclipse жаловаться на "... Схема не может содержать два глобальных компонента с одинаковым именем..."

Примечательным аспектом является то, что у меня не было этой проблемы с Eclipse Kepler SR2, но Eclipse Luna SR1, сравнивая оба предпочтения в XML-валидации, они были одинаковыми.

Это было решено удалением spring-context-4.0.xsd из атрибута xsi: schemaLocation:

http://www.springframework.org/schema/context   
http://www.springframework.org/schema/context/spring-context-4.0.xsd

После этого все заработало как положено.

Ответ 6

У меня недавно была такая же проблема с JPA-1.3

Ничего не работало, пока я не использовал явные ссылки tools.xsd

xsi:schemaLocation=" ...
    http://www.springframework.org/schema/tool
    http://www.springframework.org/schema/tool/spring-tool-3.2.xsd
    ... ">

вот так:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/jdbc 
        http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd
        http://www.springframework.org/schema/data/jpa
        http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/tool
        http://www.springframework.org/schema/tool/spring-tool-3.2.xsd
        ">

Ответ 7

Что @forhas и @HRgiger также работал у меня. Я использую spring-data-mongodb вместо jpa.

Однако для привязок mongodb вам не следует удалять версию ссылки xsd mongodb, просто сохраните ее с версией: http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd. context и beans версии должны быть удалены.

Ответ 8

Я удалил эту ошибку, обновив номер версии в

  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 

до 4.3, как я обновил весеннюю версию в pom как 4.3.7.RELEASE

Ответ 9

Ссылочный файл содержит ошибки (http://www.springframework.org/schema/context/spring-context-3.0.xsd)

я столкнулся с этой проблемой, когда я настраивал dispatcher-servlet.xml, вы можете удалить это:

xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  http://www.springframework.org/schema/context
  http://www.springframework.org/schema/context/spring-context-3.0.xsd"

от вашего xml, и вы также можете выполнить шаги, перейдите в окно → настройки → проверка → и непроверенный валидатор XML и валидатор схемы XML.

Ответ 10

Если у вас нет контроля над этими файлами, поскольку эти файлы могут быть частью других проектов, и вы не авторизованы вносить какие-либо изменения, вы можете обойти эти ошибки в затмении, выбрав "Предпочтения" → "XML" → "Файлы XML". → Проверка → Ссылочный файл содержит ошибки → выберите опцию Игнорировать.

И пусть проект будет проверен, сообщение об ошибке исчезнет.

Ответ 11

использовать этот:

xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd"

Ответ 12

Я также столкнулся с этой проблемой и исправил ее, удалив часть версии из имени XSD.

http://www.springframework.org/schema/beans/spring-beans-4.2.xsd to http://www.springframework.org/schema/beans/spring-beans.xsd

Версии без XSD сопоставляются с текущей версией платформы, используемой в приложении.

Ответ 13

Это случилось со мной после обновления версии Eclipse. То, что работает для меня, было чистым тайником затмения. Перейдите в "Окно"> "Установки"> "Сетевое подключение"> "Кэш"> "Удалить все".

Я надеюсь, что это работает для всех!