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 :

XStream Zero length string


Sujet :

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

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut XStream Zero length string
    Bonjour,

    Cela fait quelques jours que je cherches activement une solution à mon problème avec l'utilisation de Xstream.

    En effet je reçois un flux xml dans lequel il arrive parfois qu'une balise soit vide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <id_parent></id_parent>
    Or lorsque Xstream lit cette balise il y a une exception qui se lance car apparemment il n'arrive pas à gérer un tag vide.

    Voici l'exception Caused by:

    com.thoughtworks.xstream.converters.ConversionException: Zero length string : Zero length string
    ---- Debugging information ----
    message : Zero length string
    cause-exception : java.lang.NumberFormatException
    cause-message : Zero length string
    class : java.lang.Integer
    required-type : java.lang.Integer
    converter-type : com.thoughtworks.xstream.converters.SingleValueConverterWrapper
    wrapped-converter : com.thoughtworks.xstream.converters.basic.IntConverter
    path : /prestashop/category/id_parent
    class[1] : xml.models.test.Category
    converter-type[1] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
    class[2] : xml.models.test.Prestashop
    version : null


    J'aimerai savoir si il y a une solution pour résoudre ce problème, je sais que l'utilisation de l'anotation @XStreamOmitField peut empêcher ce lire cet element mais cela ne résout pas mon problème car cette balise est important dans l'application.

    Avez vous une idée ou une piste svp?
    Merci

  2. #2
    Membre confirmé Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Points : 500
    Points
    500
    Par défaut
    un try catch tout bêtement?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Hmm je ne vois pas comment je pourrai mettre ca en place.

    Je viens de tomber sur ce topic

    There's no implicit support for the nil attribute. You may overload the ReflectionConverter and check that attribute yourself and return null then, but I have not tried this myself.
    Il faut surcharger la classe ReflectionConverter, mais aucun retour positif sur cette astuce.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 312
    Points : 533
    Points
    533
    Par défaut
    bonjour,

    l'erreur est la suivante : cause-exception : java.lang.NumberFormatException

    ce qui signifie que tu dois essayer de transformer ce champ en nombre, or le cast du style Integer.parseInt(string) ne supporte pas le string = null

    Il te faut donc tester la valeur du champ.

    soit juste avant le cast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (string == null) {
              string=0;
    }
    int i = Integer.parseInt(string);
    soit comme le propose Ruskov en interceptant l'exception java.lang.NumberFormatException :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try {
              int i = Integer.parseInt(string);
    }
    catch(NumberFormatException e) {
             int i = 0;//si erreur (string = null ou string pas castable)
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 52
    Points
    52
    Par défaut
    Merci de votre réponse

Discussions similaires

  1. [AC-2007] Probleme avec ALLOW ZERO LENGTH STRING et NULL:
    Par Bonero dans le forum Modélisation
    Réponses: 4
    Dernier message: 07/11/2012, 19h00
  2. Unbounded-length string handling
    Par Dahevos dans le forum Ada
    Réponses: 1
    Dernier message: 09/11/2008, 11h15
  3. Length(string) en pixels ?
    Par JJJJJ dans le forum Langage
    Réponses: 3
    Dernier message: 20/12/2007, 11h55
  4. Cannot be a zero-length string
    Par jam92400 dans le forum Access
    Réponses: 2
    Dernier message: 20/09/2006, 19h29
  5. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29

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