代码之家  ›  专栏  ›  技术社区  ›  Marcus Leon

Sun是否已弃用Java DTD URL?

  •  0
  • Marcus Leon  · 技术社区  · 14 年前

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

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


    更新:出现 http://java.sun.com/ 也不可用。不确定这是Sun/Oracle端的中断,还是该站点已经退役。

    更新2:好的,现在开始工作了。从昨天开始就没工作过-我发誓!我认为“杰里米是对的,我们需要自己主持。

    3 回复  |  直到 12 年前
        1
  •  2
  •   Jeremy    14 年前

    我建议你自己下载并托管它。

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

        2
  •  0
  •   Joachim Sauer    14 年前

    它没有被弃用。这是暂时的问题,根据 this thread .

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

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

        3
  •  0
  •   denny    13 年前

    在没有网络接入的情况下能够构建东西是一种不错的选择。下面是一个自托管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 重新填写:

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