2010-11-17 66 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>