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 :

XmlStreamReader.getText() limité en taille ?


Sujet :

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

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut XmlStreamReader.getText() limité en taille ?
    Bonjour

    coté serveur j'envoie dans un flux xml une réponse dont l'un des champs
    est un fichier zip.

    coté client, je reçois le flux et désire enregistrer le zip sur le disque.
    je me place sur le bon tag puis appelle
    puis, j'enregistre le contenu sur le disque.
    Si le fichier est petit, cela fonctionne, si la taille est plus grande ( qq dizaines
    de Ko), le contenu de s ne fait que 8088 octets et l'appel suivant à
    renvoie une erreur : found: CHARACTERS, expected START_ELEMENT or END_ELEMENT

    J'ai lu dans le flux sans passer par le parser xml, la taille du fichier
    résultat semble cohérente.

    J'imagine que l'appel à getText ne peut renvoyer qu'un contenu limité en
    taille mais je n'ai rien trouvé pour récupérer le contenu petit à petit.

    Avez vous une idée ?

    merci
    Julien

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 210
    Par défaut
    Et oui !

    Tu peux avoir plusieurs évennements Text à la suite. C'est parce que le parser StAX utilise un buffer de 8ko et donc les EventCharacter ne peuvent pas être + long.

    Ton algorithme devrait faire des reader.next() tant que c'est tjs un évennement Text, et concaténer le tout.

    Et pour optimiser la solution :
    Je te conseille de créer un décorateur InputStream par dessus ton XMLStreamReader, capable de renvoyer le binaire décodé à la volée...
    Cela existe déjà dans des implémentations comme axiom et axis2 par exemple. Peut etre tu peux t'inspirer des sources

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 120
    Par défaut
    ok, merci de ta réponse.

    Julien

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

Discussions similaires

  1. [MySQL] Limiter la taille du texte a l'affichage
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/03/2006, 11h08
  2. Limiter la taille d'une ou plusieurs bases de données
    Par Thierry8 dans le forum Administration
    Réponses: 7
    Dernier message: 12/03/2006, 23h51
  3. Feuille de style, faut-il limiter leurs tailles?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 17
    Dernier message: 30/01/2006, 07h05
  4. [ Eclipse2.1 ][ Plugin ] limiter la taille des boutons
    Par whilecoyote dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 03/11/2005, 16h08
  5. [Tomcat][Jsp][Upload]Limiter la taille d'un upload...
    Par Titom dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/05/2005, 15h33

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