2010-11-17 53 views
0

我们在ANT脚本中使用xmltask ANT任务作为条件逻辑(即:if语句)。Sun是否已弃用Java DTD URL?

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


更新:出现http://java.sun.com/也不可用。不知道这是Sun/Oracle的最终停机还是本站已经停用。

更新2:好吧,现在它工作。从昨天开始一直工作 - 我发誓!我想@Jeremy是对的,我们需要自己来主持。

+1

太阳?谁是Sun?反正在浏览器中打开这里 – PeterMmm 2010-11-17 14:24:57

+0

我可以使用浏览器(FF)访问此网址。 – 2010-11-17 14:27:11

+0

我们都知道Sun收购了甲骨文,并正在将它们用作他们所有邪恶帝国创意的门面。显然它不工作。 – Jeremy 2010-11-17 14:27:20

回答

2

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

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

+0

是的,好主意。但我相信这个URL在xmltask的某个地方是硬编码的。如果我只是下载文件,我会认为xmltask jar将需要更新 - 我想我们可以做到这一点.. – 2010-11-17 14:27:32

+0

啊,那不好。你的网络是否改变了?也许代理设置? – Jeremy 2010-11-17 14:28:21

+0

我错了,路径在我们的一个XML文件中。会给这个尝试.. – 2010-11-17 14:48:10

0

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

无论如何,取决于外部托管的DTD是一个坏主意,应该避免。

由于URI被用作标识符,有时候改变它们并不是微不足道的。但是,每个XML解析器都应该有一个选项来定制如何加载DTD(或模式),并且应该可以使用本地副本而不是远程副本。此外,这将减少对外部连接的需求,并会加速加载XML。

0

能够在没有网络访问的情况下构建东西真是太好了。这是自我托管的DTD和xmltask的后代例子。

附近的某个地方生成文件($ {} ext.dir是一个本地文件路径)的顶部:在以后通过xmlcatalog REFID

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

参考:

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