7 votes

Problème de Spring ROO avec UrlRewrite dans STS (eclipse)

J'ai du mal à trouver une solution à ce problème. J'ai un fichier appelé : "urlrewrite.xml" qui a été automatiquement généré par spring ROO après avoir exécuté la commande "controller" dans ROO Shell.

Cependant, j'obtiens toujours l'erreur suivante :

"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..."

Voici le contenu du fichier 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>

Avez-vous une idée de la façon de vous débarrasser de cette erreur ?

10voto

Rudy Points 202

Il suffit de changer 3.0 en 3.2

<!DOCTYPE urlrewrite
    PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">

7voto

xtrycatchx Points 76

J'ai aussi eu ce problème. Ce que j'ai fait, c'est que j'ai changé le code de :

<?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">

en :

<?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">

En fait, j'ai juste ajouté le "www." avant le "tuckey.org" et ça a réglé le problème.

5voto

sosiouxme Points 497

http://forum.springsource.org/showthread.php?t=90962 m'a conduit sur le bon chemin.

Si vous téléchargez la DTD à partir de http://tuckey.org/res/dtds/urlrewrite3.0.dtd vous constaterez que parfois il est correct et parfois c'est du HTML vide. Eclipse met en cache ce qu'il télécharge dans les deux cas. Vous pouvez résoudre le problème de deux manières :

  1. Téléchargez vous-même le fichier DTD, vérifiez qu'il ressemble à une DTD XML, stockez-le localement et indiquez-le dans votre en-tête urlrewrite.xml.
  2. Allez dans Préférences -> Général -> Connexions réseau -> Cache et supprimez la DTD mise en cache, puis revalidez le XML (clic droit -> Valider). Répétez l'opération jusqu'à ce que vous obteniez une bonne copie de la DTD mise en cache.

3voto

SonTL Points 161

Ajouter www pour le lien fonctionne pour moi, j'ai changé de

<?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">

2voto

Nearmars Points 21

Bonjour, je viens de résoudre ce problème en me basant sur quelques-unes de ces réponses ici :

Les étapes que j'ai suivies sont les suivantes :
1. Téléchargez le fichier urlrewrite3.2.dtd.
2. je l'ai enregistré localement dans ...war/WEB-INF/urlrewrite3.2.dtd
3. j'ai fait pointer mon fichier URLrewrite vers la copie locale
4. supprimé la version en cache (Préférences>Général>Connexions réseau>Cache)
5. Revalidé le XML

Note : J'ai d'abord essayé d'éditer le fichier comme suggéré par Titi Wangsa bin Damhore mais j'ai eu une erreur de validation dans le fichier dtd. J'ai supprimé cette erreur en suivant les étapes ci-dessus et boom. Problème résolu. Merci à ceux qui ont apporté leurs idées.

Citation en bloc

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X