我很难弄清楚如何解决这个问题。我有一个名为:“ urlrewrite.xml”的文件,该文件是在Roo Shell中运行“控制器”命令后自动生成的。

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

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

关于如何摆脱此错误的想法吗?

有帮助吗?

解决方案

只需将3.0更改为3.2

<!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 "-//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”之前,它解决了问题。

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

如果您从中下载DTD http://tuckey.org/res/dtds/urlrewrite3.0.dtd 您会发现有时候是正确的,有时是空的HTML。 Eclipse缓存了下载的任何一种方式。您可以解决两种方法:

  1. 亲自下载DTD文件,验证它看起来像XML DTD,在本地存储,然后将其指向您的Urlrewrite.xml标题。
  2. 转到偏好 - >常规 - >网络连接 - >缓存并删除缓存的DTD,然后重新验证XML(右键单击 - > validate)。重复直到您获得DTD缓存的好副本。

添加 万维网 为了链接为我工作,我从

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

嗨,我只是根据这里的一些答案解决了此问题:

我遵循的步骤是:
1.下载urlrewrite3.2.dtd
2.将其保存到...战争/Web-Inf/urlrewrite3.2.dtd
3.将我的Urlrewrite文件指向本地副本
4.删除了缓存版本(首选项>常规>网络连接>缓存)
5.重新验证XML

注意:我最初尝试按照Titi Wangsa bin damhore的建议进行编辑,但是在那里我在DTD文件中遇到了验证错误。我删除了遵循上述步骤和繁荣的步骤。问题解决了。感谢那些贡献想法的人。

blockquote

是否有一些谷歌搜索的“示例DTD”第四或第五结果是 http://www.xmlfiles.com/dtd/dtd_examples.asp

样品有一个

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

URL重写DTD始于

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

我发布了一个“”的WGEThttp://tuckey.org/res/dtds/urlrewrite3.0.dtd“”并在STS中打开,是的,它的红色。

在顶部添加

<!DOCTYPE urlrewrite [

并广告底部

]>

它不再是红色。

所以我建议

  1. 获取DTD
  2. 改变它
  3. 将其保存在与XML相同的目录中
  4. 更改XML以在同一目录中使用DTD。

在Intellij Idea中,您可以选择红色DTD URI,点击Alt-Enter,然后选择“ Fetch外部资源”。

在Eclipse中,您可以将条目添加到XML目录下:首选项 - > XML-> XML目录。

我希望这有帮助。

将3.0更改为3.2对我有用...

我得到了DTD ...将其保存在与XML相同的目录中并更改。现在DTD和XML有红色

文档类型声明所包含或指出的标记声明必须是良好的。 urlrewrite3.0.dtd

引用文件包含错误(.... App/src/main/webapp/web-inf/urlrewrite3.0.dtd)。 ..

请上传您的XML文件和DTD文件。

我使用了User374708方法并清除网络CAHCE,如《近亲邮报》中所示

最好下载DTD并使用XML目录条目指向它,因为这使得在发布时不需要更改DTD,但是在开发时,您的文件将在本地验证。

我已经弄清楚了这个问题。尝试此URL http://tuckey.org/res/dtds/urlrewrite3.1.dtd 随着您的浏览,您将看到它将您重定向到完全不同的HTML页面,而不是DTD文件。所以这就是我所做的。我从Tuckey Jar找到了DTD文件,并将内容复制到{workspace}/。metadata/.plugins/org.eclipse.wst.internet.cache.cache/279269156.Cache。 rememer 279269156.Cache Cache File的名称将有所不同。因此,您必须通过使用某些编辑器打开缓存文件来找到哪个是坏文件

该问题已解决下一个版本... https://jira.springsource.org/browse/roo-1129

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top