2010-11-17 86 views
0

Nous utilisons la tâche ANT xmltask pour la logique conditionnelle (c'est-à-dire: if) dans nos scripts ANT.Est-ce que Sun a désapprouvé les URL DTD Java?

Actuellement, cette tâche est en train de bombarder, apparemment parce qu'elle ne peut pas atteindre "http://java.sun.com/dtd/application_1_3.dtd". Nous ne pouvons pas accéder à cette URL dans notre navigateur. Sun a-t-il "désapprouvé" ces URL Java DTD?


Mise à jour: Apparaît http://java.sun.com/ non disponible. Vous ne savez pas s'il s'agit d'une panne à la fin de Sun/Oracle ou si ce site a été mis hors service.

Mise à jour 2: Ok, maintenant cela fonctionne. N'a pas travaillé depuis hier - je le jure! Je pense que @Jeremy a raison de le faire nous-mêmes.

+1

Sun? Qui est Sun? de toute façon s'ouvre bien dans le navigateur ici – PeterMmm

+0

Je peux accéder à cette URL en utilisant le navigateur (FF). –

+0

Nous savons tous que Sun a acheté Oracle et ne fait que les utiliser comme façade pour toutes leurs idées d'empire maléfique. De toute évidence, cela ne fonctionne pas. – Jeremy

Répondre

2

Je vous suggère de le télécharger et de l'héberger vous-même.

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

+0

Oui, bonne idée. Mais je crois que cette URL est codée en dur quelque part dans xmltask. Si je télécharge simplement le fichier je pense que le pot de xmltask devrait être mis à jour - je suppose que nous pourrions faire ceci .. –

+0

Ah, ce n'est pas bon. Votre réseau a-t-il changé? Peut-être les paramètres de proxy? – Jeremy

+0

J'avais tort, le chemin est dans un de nos fichiers XML. Je vais essayer ça .. –

0

Ce n'est pas dépréciés. C'est un problème temporaire, selon this thread. Quoi qu'il en soit, en fonction des DTD hébergées de l'extérieur est une mauvaise idée de toute façon et devrait être évitée.

Étant donné que les URI sont utilisés comme identifiant, leur modification n'est pas triviale, parfois. Cependant, chaque analyseur XML devrait avoir une option pour personnaliser le chargement des DTD (ou des schémas) et il devrait être possible d'utiliser une copie locale au lieu de la copie distante. De plus, cela réduirait le besoin de connectivité externe et accélérerait le chargement du XML.

0

Etre capable de construire des choses sans avoir accès au réseau est plutôt sympa. Voici un exemple de DTD auto-hébergée et de xmltask, pour la postérité.

Quelque part près du sommet du fichier de construction ($ {de ext.dir} étant un chemin de fichier local):

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

référence ultérieurement à l'aide 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>