0

我们将xmltask ANT 任务用于我们的 ANT 脚本中的条件逻辑(即:if 语句)。

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


更新:似乎http://java.sun.com/也不可用。不确定这是否是 Sun/Oracle 的中断,或者该站点是否已停用。

更新 2:好的,现在它正在工作。从昨天开始就没有工作了——我发誓!我认为@Jeremy 是对的,我们需要自己主持。

4

3 回答 3

2

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

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

于 2010-11-17T14:26:02.123 回答
0

它没有被弃用。根据这个线程,这是一个临时问题。

无论如何,依赖外部托管的 DTD 无论如何都是一个坏主意,应该避免。

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

于 2010-11-17T15:48:49.533 回答
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>
于 2011-04-26T04:52:11.643 回答