7

この問題を解決する方法を理解するのに苦労しています。ROOシェルで「controller」コマンドを実行した後、SpringROOによって自動的に生成された「urlrewrite.xml」というファイルがあります。

ただし、それでも次のエラーが発生します。

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

このエラーを取り除く方法について何か考えはありますか?

4

14 に答える 14

10

3.0から3.2に変更するだけです

<!DOCTYPE urlrewrite
    PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
于 2010-06-23T22:09:05.697 に答える
7

私もこの問題を抱えています。私がしたことは、コードを次のように変更することでした。

<?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」の前にあり、問題が修正されました。

于 2011-05-30T22:47:30.737 に答える
5

http://forum.springsource.org/showthread.php?t=90962は私を正しい道に導きました。

DTDをhttp://tuckey.org/res/dtds/urlrewrite3.0.dtdからダウンロードすると、正しい場合と空のHTMLの場合があります。Eclipseは、ダウンロードしたものをいずれかの方法でキャッシュします。この問題は2つの方法で修正できます。

  1. DTDファイルを自分でダウンロードし、XML DTDのように見えることを確認してローカルに保存し、urlrewrite.xmlヘッダーでこれを指定します。
  2. 「設定」->「一般」->「ネットワーク接続」->「キャッシュ」に移動し、キャッシュされたDTDを削除してから、XMLを再検証します(右クリック->「検証」)。キャッシュされたDTDの適切なコピーが得られるまで繰り返します。
于 2010-07-07T21:10:00.780 に答える
3

私のために作品をリンクするために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">
于 2011-06-27T04:20:53.270 に答える
2

こんにちは私はここでこれらの答えのいくつかに基づいてこれを解決しました:

私が行った手順は次のとおり
です。1。urlrewrite3.2.dtdをダウンロードしました。2
。ローカルに...war/ WEB-INF/urlrewrite3.2.dtdに
保存しました。3。URLrewriteファイルをローカルコピーにポイントしました。4。
キャッシュを削除しました。バージョン([設定]>[一般]>[ネットワーク接続]>[キャッシュ])
5。XMLを再検証しました

注:Titi Wangsa bin Damhoreによって提案されたように、最初にファイルを編集しようとしましたが、dtdファイルで検証エラーが発生しました。上記の手順に従って削除し、ブームになりました。問題が解決しました。アイデアを提供してくれた人々に感謝します。

ブロッククォート

于 2010-07-21T14:25:36.320 に答える
1

3.0から3.2に変更するとうまくいきました...

于 2010-07-27T13:25:31.997 に答える
1

グーグルで「サンプルdtd」を実行した4番目または5番目の結果はhttp://www.xmlfiles.com/dtd/dtd_examples.aspでした

サンプルには

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

urlrewritedtdはで始まりました

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

"" http://tuckey.org/res/dtds/urlrewrite3.0.dtd " "のwgetを発行し、sts、yup、その赤で開きました。

上部に追加

<!DOCTYPE urlrewrite [

と下に広告

]>

そしてそれはもはや赤ではありません。

だから私は提案します、

  1. dtdを取得する
  2. それを変更する
  3. xmlと同じディレクトリに保存します
  4. 同じディレクトリ内のdtdを使用するようにxmlを変更します。
于 2010-06-15T23:58:55.300 に答える
1

IntelliJ IDEAでは、赤いDTD URIを選択し、Alt-Enterキーを押してから、[外部リソースの取得]を選択できます。

Eclipseでは、「設定」->「XML」->「XMLカタログ」でXMLカタログにエントリーを追加できます。

これがお役に立てば幸いです。

于 2010-06-17T08:46:07.683 に答える
1

dtdurlを「http://urlrewritefilter.googlecode.com/svn-history/r275/trunk/src/java/org/tuckey/web/filters/urlrewrite/dtds/urlrewrite3.0.dtd」に設定すると機能します。

于 2010-08-12T09:30:44.900 に答える
0

Nearmarsの投稿に示されているように、user374708メソッドを使用し、ネットワークcahceをクリアしました

于 2010-07-23T11:54:43.953 に答える
0

DTDを取得しました...xmlと同じディレクトリに保存して変更しました。これで、DTDとxmlに赤が表示されます

文書型宣言に含まれている、または示されているマークアップ宣言は、整形式である必要があります。urlrewrite3.0.dtd

参照ファイルにエラーが含まれています(.... App / src / main / webapp / WEB-INF / urlrewrite3.0.dtd)。..

xmlファイルとdtdファイルをアップロードしてください。

于 2010-06-17T03:41:50.173 に答える
0

この問題は次のリリースで修正されています... https://jira.springsource.org/browse/ROO-1129

于 2010-07-25T13:18:01.973 に答える
0

DTDをダウンロードし、XMLカタログエントリでポイントすることをお勧めします。これにより、公開時にDTDを変更する必要がなくなりますが、ファイルは開発中にローカルで検証されます。

于 2011-03-09T10:10:10.833 に答える
0

私は問題を理解しました。このURLhttp ://tuckey.org/res/dtds/urlrewrite3.1.dtdを参照して試してみると、dtdファイルではなく完全に異なるhtmlページにリダイレクトされていることがわかります。これが私がしたことです。tuckey jarからdtdファイルを見つけ、コンテンツを{workspace}/。metadata/ .plugins / org.eclipse.wst.internet.cache / 279269156.cacheにコピーし、マーカービューから警告を削除して再検証しました。Rememer279269156.cacheキャッシュファイルの名前は異なります。したがって、エディタでキャッシュファイルを開いて、どちらが不良ファイルであるかを見つける必要があります

于 2011-06-20T05:31:36.407 に答える