Sun是否弃用了Java DTD URL?

时间:2010-11-17 14:22:23

标签: java ant dtd sun xmltask

我们在ANT脚本中使用xmltask ANT任务作为条件逻辑(即:if语句)。

目前这项任务是轰炸,显然是因为无法达到“http://java.sun.com/dtd/application_1_3.dtd”。我们无法在浏览器中访问此网址。 Sun是否“弃用”了这些Java DTD URL?


更新:显示http://java.sun.com/也不可用。不确定这是否是Sun / Oracle的终止,或者该站点是否已经退役。

更新2:好的,现在它正在运行。自昨天以来一直没有工作 - 我发誓!我认为@Jeremy是对的,我们需要自己主持。

3 个答案:

答案 0 :(得分:2)

我建议您下载并自己托管。

http://java.sun.com/dtd/

答案 1 :(得分:0)

它没有被弃用。根据{{​​3}},这是一个临时问题。

无论如何,根据外部托管的DTD,无论如何都是个坏主意,应该避免使用。

由于URI被用作标识符,因此有时候更改它们并非易事。但是,每个XML解析器都应该有一个选项来自定义DTD(或模式)的加载方式,应该可以使用本地副本而不是远程副本。此外,这将减少对外部连接的需求,并加快XML的加载速度。

答案 2 :(得分:0)

能够在没有网络访问权限的情况下构建东西是件好事。以下是自托管DTD和xmltask的示例,供后人使用。

靠近构建文件顶部的某处($ {ext.dir}是本地文件路径):

<xmlcatalog id="commonDTDs">
    <dtd publicId="-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" location="${ext.dir}/dtd/web-app_2_3.dtd" />
    <dtd publicId="-//tuckey.org//DTD UrlRewrite 3.2//EN" location="${ext.dir}/dtd/urlrewrite3.2.dtd" />
</xmlcatalog>

稍后使用xmlcatalog refId:

引用它
<xmltask source="${war.dir}/WEB-INF/web.xml" dest="${war.dir}/WEB-INF/web.xml">
    <xmlcatalog refId="commonDTDs" />
    <remove path="web-app/servlet[servlet-class/text()='loader.servlet.FileServlet']" />
    <remove path="web-app/servlet-mapping[servlet-name/text()='FileServlet']" />
</xmltask>