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 :

java.lang.ArrayIndexOutOfBoundsException sur Transformation XSLT [XSLT]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut java.lang.ArrayIndexOutOfBoundsException sur Transformation XSLT
    Bonjour,

    A l'aide du package "javax.xml.transform" je réalise une transformation XSLT avec le code suivant.

    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
     
          // Charge le XSL
          TransformerFactory tFactory = TransformerFactory.newInstance();
          StreamSource ss = new StreamSource(sFileXSL);
          Transformer transformer = tFactory.newTransformer(ss);
     
          // Type de transformation (XML, HTML, )
          //transformer.setOutputProperty(OutputKeys.METHOD,"xml");
     
          // Passage de paramètres
          transformer.setParameter("champTri",this.getChampTri());
     
     
          StringWriter swOut = new StringWriter();
          transformer.transform(new StreamSource(sFileXML),new StreamResult(swOut));
    Aucun problème avec le serveur d'application IAS, mais sur BEA il me renvoit systématiquement l'erreur suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.ArrayIndexOutOfBoundsException: -1
    Quelqu'un aurait-il déjà rencontré ce problème ?

    Merci d'avance.

  2. #2
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Tu as bien préciser quelle TransformerFactory tu utilisait?

    Pour que ton bout de code marche, il faut indiquer à JAVA quelle TransformerFactory utliser par un bout de code, par exemple (si tu utilise Xalan comme API XSL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Properties props = System.getProperties();
    props.put("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut
    Citation Envoyé par woodwai
    Tu as bien préciser quelle TransformerFactory tu utilisait?

    Pour que ton bout de code marche, il faut indiquer à JAVA quelle TransformerFactory utliser par un bout de code, par exemple (si tu utilise Xalan comme API XSL) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Properties props = System.getProperties();
    props.put("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
    Non je n'ai rien précisé. Pourtant le code posté plus haut marche en l'état sur IAS.
    Comment puis-je savoir quel TransformerFactory il utilise par défaut ? sachant que quand je trace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    props.get("javax.xml.transform.TransformerFactory")
    il me retourne null...

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Je ne connait pas IAS, mais peut être qu'il utilise lui-même un transformer XSL et que c'est pour cela que ça marche avec lui.

    Dans tout les cas, si tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    props.get("javax.xml.transform.TransformerFactory")
    avant d'avoir fait de put dessus, c'est normal que tu n'ai rien ... si tu le fait aprés ... bizzard.

    Effectivement, je pense que par defaut il n'en utilise aucune!

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Par défaut
    Je vais tester de lui forcer le TransformerFactory pour voir ce que cela donne sur BEA.
    Sinon quels sont les différents TransformerFactory inclus dans le JDK 1.4 ?

  6. #6
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Je vient d'aller jetter un coup d'oeil à ja javadoc de sun, et ce qui est quand même bizzard c'est que si tu ne reseigne rien, une factory par defaut est mise, celle par défaut dans la platform!

    Sinon, tu as celle de sax dans le J2EE 1.4 (pas dans le JDK) :
    javax.xml.transform.sax.SAXTransformerFactory

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

Discussions similaires

  1. Erreur java lang.ArrayIndexOutOfBoundsException
    Par lerorodu51 dans le forum NetBeans
    Réponses: 8
    Dernier message: 04/06/2009, 19h17
  2. java.lang.NoClassDefFoundError sur un exemple tout simple
    Par Invité dans le forum Services Web
    Réponses: 2
    Dernier message: 23/02/2009, 10h36
  3. Réponses: 4
    Dernier message: 17/11/2007, 15h29
  4. java.lang.StackOverflowError sur évènement windowDeactivated
    Par SheikYerbouti dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/06/2007, 22h23
  5. Réponses: 4
    Dernier message: 30/07/2006, 14h38

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