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

Servlets/JSP Java Discussion :

JSonArray, limite de taille ?


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut JSonArray, limite de taille ?
    Bonjour,

    je parse un fichier et je stock certains tokens dans des items, au fur et à mesure je stock tous ces items dans un jsa (JSonArray). Mon fichier est très gros et arrivé à 14xx items stocké ma servlet s'arrête et ne retourne pas le JSon à ma jsp...

    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
     
    do {
                        line = logs.readLine();
     
                        if (line != null) {
     
                            //je découpe ma ligne lue
                            tokenizer = new StringTokenizer(line, ";");
     
     
                            while (tokenizer.hasMoreTokens()) {
                                str = tokenizer.nextToken();
                                Matcher matcher = pattern.matcher(str);
                                exist = matcher.find();
     
     
                                if (exist) {
                                    tokenizer.nextToken();
                                    tokenizer.nextToken();
                                    requete = tokenizer.nextToken();
                                    temps = tokenizer.nextToken();
                                    item = getPerfInfo(requete, temps);
                                    jsa.add(item);
                                }
                            }
                        }
                    } while (line != null);                
                    logs.close();
                    jso.put("success", "true");
                    jso.put("result", jsa);
                    jso.put("resultCount", jsa.size());
                    writeResponse(response, jso);
                    return LET_ME_DO;
    J'ai placé différent logger pour voir comment se comporte mon code, il passe bien dans le if(exist). Quand jsa.size(); vaut 14xx le code s'intérromp.
    Je ne passe pas par jso.put

    Je cherche depuis un moment mais si vous avez des idées, je suis preneur. Est-ce qu'un JSonArray n'est pas content quand il atteint une certaine taille ?

    Merci.

    Edit : Si je mets un compteur à 100 ou 200 ma jsp récupère bien mon JSon

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    Tu ne lis qu'une seule ligne?

    Il me semble qu'il manque la ligne de code suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
     line = logs.readLine();
     } while (line != null); 
    ...
    Qu'en penses-tu?

  3. #3
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Je ne vois pas ce que tu veux dire.
    Je lis bien la totalité de mon fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    do{
           line = logs.readLine();
              ...
    while(line != null);
    D'ailleurs, je viens de rajouter un bloc try catch au niveau du remplissage de mon jsa et je n'ai plus de problème. Mon json est bien renvoyé à ma jsp qui elle s'en sert pour un gridPanel. par contre ça rame à mort quand je veux faire un classement des colonnes..

  4. #4
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Désolé, je n'ai pas bien lu le code...

    La seule limite est la mémoire disponible côté serveur.

    Donc vous créez, un array d'object au format JSON:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{request:"", time:""}, {request:"", time:""}, ..., {request:"", time:""}]
    Si vous n'avez plus de problème en ajoutant un try catch, il se peut qu'une exception soit levée mais pas traitée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     try {
       jsa.add(item);
      }
      catch(Exception e) {
    }
    Donc il pourrait s'agir que les données passées à la méthode add posent problème.

  5. #5
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Désolé, je n'ai pas bien lu le code...
    Aucun souci Jowo.

    Eh bien, ce qui est bizarre c'est que je n'ai aucune exception de levée et que maintenant tout se passe bien. J'ai même rajouté un champ à mon jsa et tout fonctionne bien. J'avoue que je ne comprends pas bien pourquoi.. C'est vrai que si ça marche avec un bloc try c'est qu'il devait y avoir des exceptions de levées..

    Merci pour ta précision sur la "capacité" que peut prendre un jsa.

+ 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