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 :

Erreur lors du marshalling d'une grappe d'objet avec Castor XML


Sujet :

Persistance des données Java

  1. #1
    mbinte
    Invité(e)
    Par défaut Erreur lors du marshalling d'une grappe d'objet avec Castor XML
    Bonjour,

    J'essai de générer un fichier XML à partir d'une grappe d'objets. J'utilise pour cela l'API Castor XML.

    J'ai généré mon fichier de mapping, et lorsque je lance le marshalling , j'ai une exception du type :

    Exception in thread "main" java.lang.IllegalArgumentException: list is not a valid FieldMappingCollectionType

    ci-dessous une partie du fichier de mapping :

    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <mapping>
        <class
            name="monpackage.Report" auto-complete="false">
            <map-to xml="report"/>
            <field name="topMargin" type="string" required="false"
                direct="false" transient="false">
                <bind-xml name="topMargin" node="attribute" reference="false"/>
            </field>
            <field name="isSummaryNewPage" type="string" required="false"
                direct="false" transient="false">
                <bind-xml name="isSummaryNewPage" node="attribute" reference="false"/>
            </field>
            <field name="orientation" type="string" required="false"
                direct="false" transient="false">
                <bind-xml name="orientation" node="attribute" reference="false"/>
            </field>
    <field name="parameters" type="java.util.List" required="false"
                direct="false" transient="false" arraylist="list">
                <bind-xml name="parameter" node="element" reference="false"/>
            </field>
    </class>
    </mapping>
    En vérifiant le tutorial sur le site de castor, il me semble que tout est bien configuré.

    Il y a t'il une personne pour éclairer ma lanterne ?

    Merci d'avance !

  2. #2
    Membre confirmé Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Points : 552
    Points
    552
    Par défaut
    Ben je te file le mapping que j'ai utilisé pour marshall/unmarshall un fichier XML contenant les propriétés hierarchisées de la forme suivante ParameterLevel/ParameterGroup/Parameter.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <mapping>
    	<description>Mapping des propriétés</description>
     
    	<class name="fr.params.Parameters" id="Parameters">
    		<map-to xml="Parameters"/>
    		<field name="ParameterLevel" type="fr.params.ParameterLevel" collection="array">
    			<bind-xml name="ParameterLevel" node="element"/>
    		</field>
    	</class>
     
    	<class name="fr.params.ParameterLevel" id="ParameterLevel">
    		<map-to xml="ParameterLevel"/>
    		<field name="id" type="integer" required="true">
    			<bind-xml name="id" node="attribute"/>
    		</field>
    		<field name="description" type="string" required="false">
    			<bind-xml name="description" node="element"/>
    		</field>
    		<field name="name" type="string" required="true">
    			<bind-xml name="name" node="element"/>
    		</field>
    		<field name="ParameterGroup" type="fr.params.ParameterGroup" collection="array">
    			<bind-xml name="ParameterGroup" node="element"/>
    		</field>
    	</class>
     
    	<class name="fr.params.ParameterGroup" id="ParameterGroup">
    		<map-to xml="ParameterGroup"/>
    		<field name="id" type="integer" required="true">
    			<bind-xml name="id" node="attribute"/>
    		</field>
    		<field name="description" type="string" required="false">
    			<bind-xml name="description" node="element"/>
    		</field>
    		<field name="name" type="string" required="true">
    			<bind-xml name="name" node="element"/>
    		</field>
    		<field name="Parameter" type="fr.params.Parameter" collection="array">
    			<bind-xml name="Parameter" node="element"/>
    		</field>
    	</class>
     
    	<class name="fr.params.Parameter" id="Parameter">
    		<map-to xml="Parameter"/>
    		<field name="id" type="integer" required="true">
    			<bind-xml name="id" node="attribute"/>
    		</field>
    		<field name="description" type="string" required="false">
    			<bind-xml name="description" node="element"/>
    		</field>
    		<field name="name" type="string" required="true">
    			<bind-xml name="name" node="element"/>
    		</field>
    		<field name="value" type="string" required="true">
    			<bind-xml name="value" node="element"/>
    		</field>
    	</class>
    </mapping>
    Si ca peut aider...

    @++

    Kurt

  3. #3
    mbinte
    Invité(e)
    Par défaut
    Merci Billy de ton aide...j'avais trouvé la solution...j'aurai du la poster.

    Le problème venait juste de l'attribut type que j'utilisais. Il fallait juste mettre le type d'objet que j'ai dans ma collection...comme quoi réfléchir avant de coder c'est bien....

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

Discussions similaires

  1. Erreur lors de travail dans une matrice
    Par akremb22 dans le forum Delphi
    Réponses: 1
    Dernier message: 23/02/2007, 13h01
  2. Erreur lors du fractionnement d'une base
    Par Kayser Sosé dans le forum Access
    Réponses: 11
    Dernier message: 24/11/2006, 13h10
  3. Erreur lors du lancement d'une application
    Par mouloudéen dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 02h57
  4. [TestStand] Erreur lors d'un accès à une Base de données
    Par capblans dans le forum Autres langages
    Réponses: 1
    Dernier message: 20/07/2005, 10h29
  5. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

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