IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

[XML]EntityResolver / Validation DTD fourni dans le jar


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut [XML]EntityResolver / Validation DTD fourni dans le jar
    Bonjour,

    Je souhaite valider un fichier xml (fournit par un serveur), j'ai la DTD tout marche ok. Sauf lorsque je veux faire un jar et donc valider le XML par la DTD contenu dans le jar. J'ai evidemment fait une recherche et j'ai trouvé la solution EntityResolver. Je l'ai implémenter mais lors de la validation il chercher toujours ma DTD dans le repertoire courant :s

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class MyEntityResolver implements EntityResolver{
    	public InputSource resolveEntity(String publicid, String sysid) 
    	{
    		System.out.println("Apl de resolveEntity "+ getClass().getResource("/Omniloc_SLIA.DTD").getPath());
    			return new InputSource(getClass().getResourceAsStream("/Omniloc_SLIA.DTD"));
    	}
    }

    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    	   Document doc=new Document(); 
           SAXBuilder sxb = new SAXBuilder(); 
           StringReader strReader=new StringReader(xmlString); 
     
    	    try 
    	    {
     
    	    	sxb.setEntityResolver(new MyEntityResolver()); 
    	    	doc = sxb.build(strReader); 
    	    } catch (JDOMException saxe)
    	    {
    	    	saxe.printStackTrace(System.err);
    	    	throw new OmnilocException(OmnilocException.XMLFORMAT_ERROR);
    	    }
    	    catch (IOException io)
    	    {
    	    	io.printStackTrace(System.out);
    	    	System.out.println("IMPOSSIBLE DE PARSER LE StringReader");
    	    }
    L'erreur que ca declenche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Apl de resolveEntity file:/C:/Services/mmsmap.jar!/Omniloc_SLIA.DTD
    Avant le return
    java.io.FileNotFoundException: C:\Documents and Settings\juzi8222\Omniloc_SLIA.D
    TD (Le fichier spÚcifiÚ est introuvable)
            at java.io.FileInputStream.open(Native Method)
            at java.io.FileInputStream.<init>(FileInputStream.java:106)
            at java.io.FileInputStream.<init>(FileInputStream.java:66)
            at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection...
    .java:70)
    Apparemment l'EntityResolver est bien en place mais il cherche tout de même le fichier local ...

    Voici le fichier XML au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Omniloc : CONNEXION ETABLIE
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE omniloc SYSTEM "Omniloc_SLIA.DTD">
    <omniloc>
       <hdr>
          <client>
             <id>ammasis</id>
             <pwd>6436</pwd>
          </client>
       </hdr>
       <slia>
          <pos>
             <msid>0682576517</msid>
             <pd>
                <time utc_off="+0200">20060712140917</time>
                <address>
                   <number></number>
                   <way>Boulevard des Fr?res Voisin</way>
                   <postalcode>92130</postalcode>
                   <city>Issy-les-Moulineaux</city>
                </address>
                <shape>
                   <CircularArcArea>
                      <coord>
                         <X>484940N</X>
                         <Y>0021614E</Y>
                      </coord>
                      <inRadius>0</inRadius>
                      <outRadius>353</outRadius>
                      <startAngle>0</startAngle>
                      <stopAngle>360</stopAngle>
                   </CircularArcArea>
                </shape>
                <lev_conf>100</lev_conf>
             </pd>
          </pos>
       </slia>
    </omniloc>
    Merci d avance

    Julie.

  2. #2
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Si le fichier DTD est dans le même répertoire que ta classe entity resolver, tu ne dois pas mettre de "/" devant le nom de la ressource à chercher.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Non il est a la base du jar.

    Julie.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Help please, je comprend pas
    Si je fais un test dans resolveEntity
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public InputSource resolveEntity(String publicid, String sysid) 
    	{
    		System.out.println("Apl de resolveEntity "+ getClass().getResource("/Omniloc_SLIA.DTD").getPath());
    		InputSource in = new InputSource(getClass().getResourceAsStream("/Omniloc_SLIA.DTD"));	
    		System.out.println("Avant le return");
    		return in;
    	}
    j'obtiens
    Apl de resolveEntity /C:/Programmes/tomcat50/work/Catalina/localhost/vasp/loader/Omniloc_SLIA.DTD
    Avant le return

    Ce qui prouve que resolverEntity est bien appellé le fichier : /C:/Programmes/tomcat50/work/Catalina/localhost/vasp/loader/Omniloc_SLIA.DTD est bien accessible mais d'apres l'erreur il chercher malgré tout à l'url suivante :

    java.io.FileNotFoundException: C:\Programmes\tomcat50\bin\Omniloc_SLIA.DTD (Le fichier spécifié est introuvable)

    Bizarre :s

    Julie.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut omniloc
    j'ai vu que vous avez travailler pour la localisation, est ce que vous avze déjà récupérer une image de carte de omniloc ..comment faire ça car sur le lein si on passe que les coordonnées x et y en post en xml le lien redérige vers un autre lien et un lien fixe de l'image n'existe pas (((

Discussions similaires

  1. [Xerces] pb de validation xml avec un schema stocké dans un jar
    Par dvicente72 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 06/07/2007, 11h33
  2. [JDOM] XML et DTD dans un jar
    Par CyberChouan dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 08/06/2007, 17h48
  3. [XSD] [JAXP] Validation par Schema dans un JAR
    Par bleast8 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/06/2007, 00h38
  4. Valider un XML avec du XMLSchema le tout dans un JAR
    Par aikidoka dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 12/03/2007, 13h47
  5. [DOM] XML et validation DTD
    Par getupa dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 18/11/2005, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo