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 ?

1voto

J'ai fait quelques recherches sur Google "échantillon dtd" Le 4e ou 5e résultat était http://www.xmlfiles.com/dtd/dtd_examples.asp

l'échantillon avait un

<!DOCTYPE TVSCHEDULE [ 
<!ELEMENT TVSCHEDULE (CHANNEL+)>
..
..
]>

le dtd de réécriture d'url a commencé avec

<!ELEMENT urlrewrite ((rule|class-rule)*, outbound-rule*, catch*)>

J'ai fait un wget pour "" http://tuckey.org/res/dtds/urlrewrite3.0.dtd "" et ouvert dans les sts, yup, son rouge.

ajouté en haut

<!DOCTYPE urlrewrite [

et ajouter le bas

]>

et il n'est plus rouge.

donc je suggère,

  1. obtenir le dtd
  2. le modifier
  3. le sauvegarder dans le même répertoire que le xml
  4. modifier le xml pour utiliser le dtd dans le même répertoire.

1voto

schuess Points 11

Dans IntelliJ IDEA, vous pouvez sélectionner l'URI DTD rouge, appuyer sur Alt-Enter, puis choisir "Fetch external resource".

Dans Eclipse, vous pouvez ajouter l'entrée au catalogue XML sous : Préférences -> XML -> Catalogue XML.

J'espère que cela vous aidera.

1voto

masa-255 Points 2472

Passer de 3.0 à 3.2 a fonctionné pour moi...

1voto

saymo Points 11

0voto

JamesThomasMoon Points 219

J'ai obtenu le DTD ... je l'ai enregistré dans le même répertoire que le xml et je l'ai modifié. maintenant il y a un rouge dans le DTD et le xml

Les déclarations de balisage contenues ou pointées par la déclaration de type de document doivent être bien formées. urlrewrite3.0.dtd

Le fichier référencé contient des erreurs (....App/src/main/webapp/WEB-INF/urlrewrite3.0.dtd). ..

Veuillez télécharger votre fichier xml et votre fichier dtd.

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