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

Почему Eclipse не разрешает схему spring -dwr?

Eclipse показывает следующие ошибки в моем Spring applicationContext.xml:

cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dwr:configuration'.   myappservlet-servlet.xml    MyApp/src/main/webapp/WEB-INF   line 23 XML Problem
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dwr:controller'.  myappservlet-servlet.xml    MyApp/src/main/webapp/WEB-INF   line 21 XML Problem
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'dwr:remote'.  myappservlet-servlet.xml    MyApp/src/main/webapp/WEB-INF   line 41 XML Problem

Когда я наводил указатель мыши на ошибку позиции, он также говорит:

    - schema_reference.4: Failed to read schema document 'http://www.directwebremoting.org/
 schema/spring-dwr-3.0.xsd', because 1) could not find the document; 2) the document could not be 
 read; 3) the root element of the document is not <xsd:schema>.

Я подтвердил, что корневой элемент фактически равен < xsd: schema > . Когда я использую автозаполнение, набрав < dwr: Eclipse правильно показывает мне различные параметры, такие как < dwr: configuration > , < dwr: controller > и т.д. Как Eclipse может знать это без прочтения схемы?

Я использую много разных пространств имен без проблем; схема DWR является единственной, которая не разрешается. Вот объявление:

<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
              http://www.springframework.org/schema/aop 
              http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context-2.5.xsd
              http://www.directwebremoting.org/schema/spring-dwr
              http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"
    default-autowire="byName">

У меня есть последний DWR 3.0.0.116.rc1 в моем пути к классам. Если я разорву банку DWR, я нахожу META-INF/ spring.handlers, содержащие:

http\://www.directwebremoting.org/schema/spring-dwr=org.directwebremoting.spring.DwrAnnotationNamespaceHandler

и META-INF/ spring.схемы, содержащие:

http\://www.directwebremoting.org/schema/spring-dwr-2.0.xsd=org/directwebremoting/spring/spring-dwr-2.0.xsd
http\://www.directwebremoting.org/schema/spring-dwr-3.0.xsd=org/directwebremoting/spring/spring-dwr-3.0.xsd

Ускорение двоеточия немного отбросило меня, но я предполагаю, что все правильно, иначе все DWR будут разбиты.

До того, как я захватил эту конкретную схему в реальном времени с сайта DWR, но я понял это, когда моя производственная система потерпела крах, потому что сайт DWR был опущен.

4b9b3361

Ответ 1

Вы можете попробовать добавить указанный пользователем вклад в Eclipse. В разделе Окно- > Настройки- > XML- > Каталог XML выберите Пользовательские записи, а затем кнопку Добавить.

Затем вы можете добавить детали для схемы (вы можете скопировать файл локально в случае сброшенного соединения). Затем Eclipse будет иметь доступ к схеме во время проверки.

Ответ 2

Я не уверен, что ваш вопрос здесь. Вы, кажется, отвечаете на него сами в последнем абзаце - сайт DWR опускается, проверка схемы в Eclipse терпит неудачу. Обратите внимание, что Eclipse (даже с плагином Spring IDE) не использует META-INF/spring.schemas для разрешения пространств имен, которые выполняются платформой Eclipse. Если схема не найдена в месте расположения схемы, вы получите эти ошибки.

Что касается автозаполнения, Eclipse по-прежнему будет предоставлять это путем вывода из существующих структур в вашем документе, если он не может найти схему.

Это не проблема в самом приложении, так как Spring будет использовать файл META-INF/spring.schemas для разрешения схем из JAR.

Ответ 3

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

Я просто игнорирую эти ошибки. Когда вы снова в сети, очистите проект, и они уйдут.