在STS中使用UrlRewrite的Spring ROO问题(eclipse)

use*_*270 7 java spring-roo tuckey-urlrewrite-filter

我无法弄清楚如何解决这个问题.我有一个名为"urlrewrite.xml"的文件,它是在ROO Shell中运行"controller"命令后由spring ROO自动生成的.

但是,我仍然收到以下错误:

"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..."
Run Code Online (Sandbox Code Playgroud)

这是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>
Run Code Online (Sandbox Code Playgroud)

有关如何摆脱这个错误的任何想法?

小智 10

只需将3.0更改为3.2

<!DOCTYPE urlrewrite
    PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.2.dtd">
Run Code Online (Sandbox Code Playgroud)

  • 目前你必须在url前添加www,因为他们的服务器没有解析文件,它重定向到`http:// www.tuckey.org /`.使用此:`http:// www.tuckey.org/res/dtds/urlrewrite3.2.dtd` (8认同)

xtr*_*chx 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">
Run Code Online (Sandbox Code Playgroud)

进入:

<?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">
Run Code Online (Sandbox Code Playgroud)

基本上,我只是附加了"www." 在"tuckey.org"之前它解决了这个问题.


sos*_*xme 5

http://forum.springsource.org/showthread.php?t=90962引领我走上了正确的道路.

如果您从http://tuckey.org/res/dtds/urlrewrite3.0.dtd下载DTD,您会发现有时它是正确的,有时它是空的HTML.Eclipse以任何方式缓存它下载的内容.您可以通过两种方式解决问题:

  1. 自己下载DTD文件,验证它看起来像XML DTD,在本地存储它,并在urlrewrite.xml标头中指向它.
  2. 转到首选项 - >常规 - >网络连接 - >缓存并删除缓存的DTD,然后重新验证XML(右键单击 - >验证).重复,直到获得缓存的DTD的良好副本.