Я испытываю затруднения при выяснении, как решить эту проблему. Мне назвали файл: "urlrewrite.xml", который был автоматически сгенерирован пружинным КЕНГУРУ после выполнения команды "контроллера" у КЕНГУРУ Shell.
Однако я все еще получаю следующую ошибку:
"Referenced file contains errors (http://tuckey.org/res/dtds/urlrewrite3.0.dtd). For more information, right click on the message in the Problems View and select "Show Details..."
Вот содержание файла urlrewrite.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="wildcard">
<rule>
<from>/resources/**</from>
<to last="true">/resources/$1</to>
</rule>
<rule>
<from>/static/WEB-INF/**</from>
<set type="status">403</set>
<to last="true">/static/WEB-INF/$1</to>
</rule>
<rule>
<from>/static/**</from>
<to last="true">/$1</to>
</rule>
<rule>
<from>/</from>
<to last="true">/app/index</to>
</rule>
<rule>
<from>/app/**</from>
<to last="true">/app/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
<outbound-rule>
<from>/app/**</from>
<to>/$1</to>
</outbound-rule>
</urlrewrite>
Какие-либо мысли о том, как избавиться от этой ошибки?
Просто измените 3.0 на 3.2
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
поискал в Google "образец dtd" 4-й или 5-й результат был http://www.xmlfiles.com/dtd/dtd_examples.asp
в образце был
<!DOCTYPE TVSCHEDULE [
<!ELEMENT TVSCHEDULE (CHANNEL+)>
..
..
]>
URL-адрес перезаписи dtd начал с
<!ELEMENT urlrewrite ((rule|class-rule)*, outbound-rule*, catch*)>
Я выдал wget для "" http://tuckey.org/res/dtds/urlrewrite3.0.dtd "" и открыл в sts, да, его красный цвет.
добавлен вверху
<!DOCTYPE urlrewrite [
и внизу
]>
, и он больше не красный.
поэтому я предлагаю
Я получил DTD ... сохранил его в том же каталоге, что и xml и изменил его. теперь в DTD и xml есть красный цвет
Декларации разметки, содержащиеся или на которые указывает декларация типа документа, должны быть хорошо сформированы. urlrewrite3.0.dtd
Ссылающийся файл содержит ошибки (....App/src/main/webapp/WEB-INF/urlrewrite3.0.dtd). ...
Пожалуйста, загрузите ваш xml файл и dtd файл.
В IntelliJ IDEA вы можете выбрать красный DTD URI, нажать Alt-Enter, затем выбрать "Fetch external resource".
В Eclipse вы можете добавить запись в каталог XML под: Preferences -> XML -> XML Catalog.
Надеюсь, это поможет.
http://forum.springsource.org/showthread.php?t=90962 привели меня на правильный путь.
Если вы загрузите DTD с http://tuckey.org/res/dtds/urlrewrite3.0.dtd , вы обнаружите, что иногда он правильный, а иногда - пустой HTML. Eclipse в любом случае кэширует то, что загружает. Вы можете решить проблему двумя способами:
Я использовал метод user374708 и очистил сетевой cahce, как показано в сообщении Nearmars
Привет, я только что решил эту проблему, основываясь на нескольких из этих ответов здесь:
Я выполнил следующие шаги:
1. Загрузил urlrewrite3.2.dtd
.
2. сохранил его локально в ... war / WEB-INF / urlrewrite3.2.dtd
3. указал мой файл URLrewrite на локальную копию
4. удалена кешированная версия («Настройки»> «Основные»> «Сетевые подключения»> «Кэш»)
5. Повторная проверка XML
Примечание. Сначала я попытался отредактировать файл, как это было предложено Тити Ванса бин Дамхор. но я получил ошибку проверки в файле dtd. Я удалил это, выполнив шаги, описанные выше, и бум. Проблема решена. Спасибо тем, кто внес идеи.
Цитата
Эта проблема исправлена в следующем выпуске ... https://jira.springsource.org/browse/ROO-1129
установить URL-адрес dtd на " http://urlrewritefilter.googlecode.com/svn-history/r275/trunk/src/java/org/tuckey/web/filters/urlrewrite /dtds/urlrewrite3.0.dtd ", это работает.