Bonjour à Tous,

Voici mon probleme  : une webapp (déployée dans un un.war, sous WEBLOGIC 6.1) contient 
un fichier XML référençant une DTD.
Je ne sais pas exactement:
1) ou placer, dans l'arborescence J2EE standard (webapp/WEB-INF...), les fichiers .xml 
et .dtd.
2) comment référencer ma DTD dans le fichier XML

## Quelques precisions :

1) j'ai placé le fichier XML dans : [webapp]/WEB-INF/classes/xml/gadgets.xml

2) j'ai placé le fichier DTD dans : [webapp]/dtd/gadgets.dtd

3) La DTD est référencée de la manière suivant dans le fichier XML :
      <!DOCTYPE gadgets SYSTEM "dtd/gadgets.dtd">

4) ma servlet accède au fichier XML par un :
       InputStream xmlfile = 
this.getClass().getClassLoader().getResourceAsStream("xml/gadgets.xml");


==> Résultats : 

J'accède bien au fichier XML, mais la DTD associée est introuvable.
L'erreur : org.jdom.input.JDOMParseException: Error on line 0: File 
"file:///C:/bea/wlserver6.1/config/domainU1/dtd/gadgets.dtd" not found.
Autrement dit le lien n'est pas résolu de manière relative, mais en absolu !

Je sais qu'il y a une hiérarchie précise de ClassLoader(s) définit par le standard 
J2EE.
Mais concernant la résolution du lien sur le DOCTYPE, je pensais que cela était à la 
charge du webserveur lui-meme.
C'est la raison pour laquelle, j'ai placé la DTD directement sous l'arborescence de 
webapp.
En vain...

Alors j'ai essayé d'autres trucs.
En particuliers, j'ai placé la DTD au même endroit que le fichier XML, en donnant 
comme DOCTYPE :
      <!DOCTYPE gadgets SYSTEM "gadgets.dtd">
En vain...

Quel peut-être le problème sur la déclaration de la DTD ?
(faut dire que je n'ai pas enocre une connaissance approfondie de XML ! Mais je 
cherche...)

Merci de vos éclaircissements.



Répondre à