Problema di primavera con Urlrewrite in STS (Eclipse)
-
27-09-2019 - |
Domanda
Ho difficoltà a capire come risolvere questo problema. Ho un file chiamato: "Urlrewrite.xml" che è stato automaticamente generato da Spring Roo dopo aver eseguito il comando "Controller" in Roo Shell.
Tuttavia, ricevo ancora il seguente errore:
"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..."
Ecco il contenuto del file 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>
Qualche idea su come sbarazzarsi di questo errore?
Soluzione
Basta cambiare da 3.0 a 3.2
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
"http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
Altri suggerimenti
Ho anche avuto questo problema. Quello che ho fatto è stato solo cambiare il codice da:
<?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">
in :
<?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">
Fondamentalmente, ho appena aggiunto il "www". Prima del "tuckey.org" e ha risolto il problema.
http://forum.springsource.org/showthread.php?t=90962 mi ha portato sulla strada giusta.
Se scarichi il DTD da http://tuckey.org/res/dtds/urlrewrite3.0.dtd Scoprirai che a volte è corretto e a volte è vuoto HTML. Eclipse cade ciò che scarica in entrambi i casi. Puoi risolvere il problema in due modi:
- Scarica tu stesso il file DTD, verifica che sembra un DTD XML, memorizzalo a livello locale e indica questo nell'intestazione URLREWRITE.XML.
- Vai alle preferenze -> Generale -> Connessioni di rete -> Cache e rimuovi il DTD memorizzato nella cache, quindi rivalidare l'XML (clic destro -> Convalida). Ripeti fino a quando non ricevi una buona copia del DTD memorizzato nella cache.
Aggiungere www per collegare funziona per me, sono cambiato da
<?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">
a
<?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">
Ciao ho appena risolto questo basato su alcune di queste risposte qui:
I passaggi che ho seguito sono stati:
1. Scaricato l'URLRewrite3.2.DTD
2. Salvato a livello locale a ... War/Web-Inf/UrlRewrite3.2.DTD
3. Ho puntato il mio file Urlrewrite alla copia locale
4. Rimosso la versione memorizzata nella cache (Preferenze> Generale> Connessioni di rete> Cache)
5. Redivò l'XML
Nota: inizialmente ho provato a modificare il file come suggerito da Titi Wangsa bin Damhore, ma lì ho ricevuto un errore di convalida nel file DTD. Ho rimosso quello che ha seguito i passaggi sopra e boom. Problema risolto. Grazie a coloro che hanno contribuito con idee.
Blockquote
un risultato "campione dtd" di cercato su Google è stato http://www.xmlfiles.com/dtd/dtd_examples.asp
Il campione aveva un file
<!DOCTYPE TVSCHEDULE [
<!ELEMENT TVSCHEDULE (CHANNEL+)>
..
..
]>
L'URL riscrive DTD con cui è iniziato
<!ELEMENT urlrewrite ((rule|class-rule)*, outbound-rule*, catch*)>
Ho emesso un Wget per ""http://tuckey.org/res/dtds/urlrewrite3.0.dtd"" E si aprì in STS, sì, è rosso.
Aggiunto in alto
<!DOCTYPE urlrewrite [
E ad annunciare il fondo
]>
E non è più rosso.
Quindi suggerisco,
- Ottieni il DTD
- alteralo
- Salvalo nella stessa directory dell'XML
- Alterate l'XML per utilizzare il DTD nella stessa directory.
Nell'idea di Intellij, è possibile selezionare l'URI DTD rosso, premere Alt-Enter, quindi scegliere "Fetch Extern Resource".
In Eclipse, è possibile aggiungere la voce al catalogo XML sotto: Preferenze -> XML -> Catalogo XML.
Spero che questo aiuti.
Cambiare da 3.0 a 3.2 ha funzionato per me ...
Imposta l'URL DTD su "http://urlrewritefilter.googlecode.com/svn-history/r275/trunk/src/java/org/tuckey/web/filters/urlrewrite/dtds/urlrewrite3.0.dtd", funziona.
Ho ottenuto il DTD ... l'ho salvato nella stessa directory dell'XML e l'ho modificato. ora c'è un rosso nel DTD e XML
Le dichiarazioni di markup contenute o indicate dalla dichiarazione del tipo di documento devono essere ben formate. urlrewrite3.0.dtd
Il file di riferimento contiene errori (.... App/SRC/Main/WebApp/Web-Inf/UrlRewrite3.0.dtd). ..
Carica il file XML e il file DTD.
Ho usato il metodo user374708 e ho cancellato la rete CAHCE, come mostrato in NearMars Post
È meglio scaricare il DTD e indicarlo con una voce del catalogo XML, in quanto ciò rende non necessario modificare il DTD durante la pubblicazione, tuttavia i file verranno validati localmente durante lo sviluppo.
Ho capito il problema. Prova questo URL http://tuckey.org/res/dtds/urlrewrite3.1.dtd Con la tua navigazione e vedrai che ti sta reindirizzando a una pagina HTML completamente diversa invece del file DTD. Quindi ecco cosa ho fatto. Ho trovato il file DTD da Tuckey Jar e ho copiato il contenuto in {Workspace}/. Metadata/.Plugins/org.eclipse.wst.internet.cache/279269156.Cache ed eliminavo gli avvertimenti dalla vista dei marcatori e Rewated. Rememer 279269156.Cache Il nome del file cache varierà. Quindi devi trovare quale è il file cattivo aprendo il file cache con qualche editor
Quel problema è stato risolto per la prossima versione ... https://jira.springsource.org/browse/roo-1129