Почему 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 был опущен.
Ответы
Ответ 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 в автономном режиме. Он пытается схватить схему из сети. Когда он не может найти его, он указывает на ошибку проверки.
Я просто игнорирую эти ошибки. Когда вы снова в сети, очистите проект, и они уйдут.