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

Persistance des données Java Discussion :

[JAXB] javax.xml.bind.JAXBElement cannot be cast to io.jaxb.GpxType


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut [JAXB] javax.xml.bind.JAXBElement cannot be cast to io.jaxb.GpxType
    Bonjour à tous.
    J'ai créé des classes à partir du schéma xml suivant avec xjc:
    http://monique.damichel.perso.sfr.fr/provisoire/gpx.xml
    J'ai obtenu cette liste de classes:

    Mais quand je compile le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JAXBContext jc = JAXBContext.newInstance("io.jaxb"); 
    Unmarshaller unmarshaller = jc.createUnmarshaller();
    GpxType gpx = (GpxType) unmarshaller.unmarshal(new FileInputStream("ressources/BorneSN.gpx"));
    j'ai le message d'erreur:
    javax.xml.bind.JAXBElement cannot be cast to io.jaxb.GpxType
    Je ne sais pas comment caster unmarshaller avec les classes produites par xjc et j'ai l'impression qu'il en manque...
    Que faut-il faire? Merci.

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    exemple qui fonctionne correctement chez moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JAXBContext ctx = JAXBContext.newInstance(DOCUMENT.class);	
    		Unmarshaller uu = ctx.createUnmarshaller();
    		ObjectFactory factory = new ObjectFactory();
    		DOCUMENT doc = factory.createDOCUMENT();
    		doc = (DOCUMENT)uu.unmarshal(input);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut
    Bonjour anisj1m. Par quoi je dois remplacer DOCUMENT dans mon cas?
    J'ai essayé par GpxType mais ça ne marche pas.
    En lisant la doc de JAXB2.0, j'avais compris que ObjectFactory sert à créer un document XML à partir de classes Java (marshaller) alors que moi je veux faire le contraire (unmarshaller): j'ai déjà le document XML et je veux obtenir les objets java.
    Je me trompe?

  4. #4
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    bonjour,
    d'abord tu dois mettre la classe qui contient l'élément root a la place de Document pour moi .

    et pour ton besoin, oui tu as besoin de unmarshall qui est le cas de mon exemple

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut
    Je crois que dans mon cas, la classe qui contient l'élément root est GpxType (voir le schéma). Mais quand je remplace DOCUMENT par GpxType, j'obtiens toujours le même message d'erreur:
    javax.xml.bind.JAXBElement cannot be cast to io.jaxb.GpxType

  6. #6
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    donner nous un exemple de code et ou exactement tu as l'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. javax.xml.bind.UnmarshalException: ? bizzard
    Par mehdikwa dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 15/04/2014, 09h30
  2. Exception : "javax.xml.bind.UnmarshalException"
    Par steackfrite dans le forum NetBeans
    Réponses: 1
    Dernier message: 20/08/2013, 14h44
  3. Web Service - "javax.xml.bind.JAXBElement@"
    Par arsenik360 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 31/05/2013, 19h29
  4. JAXB - parseur XML
    Par be_tnt dans le forum Persistance des données
    Réponses: 1
    Dernier message: 12/07/2006, 11h49

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