Проблема Spring ROO с UrlRewrite в STS (eclipse)
-
27-09-2019 - |
Вопрос
Мне трудно понять, как решить эту проблему.У меня есть файл с именем:«urlrewrite.xml», который был автоматически сгенерирован Spring ROO после запуска команды «контроллер» в ROO 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">
Другие советы
Я также получил эту проблему. То, что я сделал, я просто изменил код из:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
в :
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//www.tuckey.org//DTD UrlRewrite 3.2//EN"
"http://www.tuckey.org/res/dtds/urlrewrite3.2.dtd">
По сути, я просто добавил «www». до «TUCKEY.ORG» и исправил проблему.
http://forum.springsource.org/showthread.php?t=90962. привел меня к правильному пути.
Если вы загружаете DTD из http://tuckey.org/res/dtds/urlrewrite3.0.dtd. Вы обнаружите, что иногда это правильно, а иногда это пустой HTML. Затмение кэширует то, что он загружает в любом случае. Вы можете исправить проблему два способа:
- Загрузите файл DTD сами, убедитесь, что он выглядит как XML DTD, сохраните его локально, и укажите это в заголовке URLREWRITE.XML.
- Перейти к предпочтениям -> General -> Сетевые подключения -> Кэш и удалите кэшированный DTD, затем Revalidate XML (щелкните правой кнопкой мыши -> Validate). Повторите, пока не получите хорошую копию кэшированного DTD.
Добавлять www. ссылаться на меня, я изменился с
<?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">
к
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite3.0.dtd">
Привет, я просто решил это на основе нескольких из этих ответов здесь:
Шаги, которые я следовал:
1. Скачал urlrewrite3.2.dtd
2. Сохранено это локально, чтобы ... WAR / WEB-INF / URLREWRITE3.2.DTD
3. Указал мой файл URLREWRITE в локальную копию
4. Удалена кэшированная версия (предпочтения> Общие> сетевые соединения> кэш)
5. Revalided XML
ПРИМЕЧАНИЕ. Я изначально пытался редактировать файл, как было предложено Titi Wangsa Bin Damhore, но там я получил ошибку проверки в файле DTD. Я удалил, что последовал за шагами выше и бум. Проблема решена. Благодаря тем, кто внес идеи.
Блокировка
Был ли какой-то погугулированный «образец DTD» 4-й или 5-й результат http://www.xmlfiles.com/dtd/dtd_examples.asp.asp.
Образец имел
<!DOCTYPE TVSCHEDULE [
<!ELEMENT TVSCHEDULE (CHANNEL+)>
..
..
]>
URL Rewrite DTD начался с
<!ELEMENT urlrewrite ((rule|class-rule)*, outbound-rule*, catch*)>
Я выпустил Wget для "" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd.«И открыл в СТС, да, его красный.
добавлено на вершине
<!DOCTYPE urlrewrite [
и реклама дна
]>
и его больше не краснут.
Так что я предлагаю,
- получить DTD
- изменить его
- сохранить его в том же каталоге, что и XML
- Измените XML для использования DTD в том же каталоге.
В Intellij Idea вы можете выбрать Red DTD URI, нажмите Alt-Enter, затем выберите «Внешний ресурс Fetch».
В Eclipse вы можете добавить запись в каталог XML под: Настройки -> XML -> Каталог XML.
Надеюсь, это поможет.
Изменение 3.0 до 3.2 работала для меня ...
Установите URL-адрес DTD наhttp://urlrewritefilter.googlecode.com/svn-history/r275/trunk/src/java/org/tuckey/web/filters/urlrewrite/dtds/urlrewrite3.0.dtd.", оно работает.
Я получил DTD ... сохранил его в том же каталоге, что и XML и изменено. Теперь есть красный в DTD и XML
Декларации разметки, содержащиеся или указывающие на объявление типа документа, должны быть хорошо сформированы. URLREWRITE3.0.DTD.
Ссылаченный файл содержит ошибки (.... App / SRC / Main / WebApp / Web-inf / urlrewrite3.0.dtd). Находятся
Пожалуйста, загрузите свой файл XML и файл DTD.
Я использовал метод User374708 и очищенную сеть Cahce, как показано в размере ближнеменной памяти
Лучше скачать DTD и указывать на него с записью каталога XML, так как это делает ненужным, чтобы изменить DTD при публикации, но ваши файлы будут проверены локально при разработке.
Я понял проблему. Попробуйте этот URL http://tuckey.org/res/dtds/urlrewrite3.1.dtd. С вашим просмотром, и вы увидите, что он перенаправляет вас полностью разную HTML-страницу вместо файла DTD. Так вот то, что я сделал. Я нашел файл DTD из баночка Teckey и скопировал контент в {Workspace} /. Metadata / .Plugins / org.eclipse.wst.internet.che / 279269156.che / 279269156.che / 279269156.che / 279269156.Cache. Remememer 279269156. Название файла кэша будет варьироваться. Так что вы должны найти, какой плохой файл, открыв файл кеша с некоторым редактором
В следующем выпуске эта проблема исправлена... https://jira.springsource.org/browse/ROO-1129