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 :

JAXB - method is already defined in class


Sujet :

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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 277
    Points : 105
    Points
    105
    Par défaut JAXB - method is already defined in class
    Bonjour,

    Je galère depuis un bon moment et mes recherche google ne donnent pas grand chose....

    Je génère des classes java depuis les xsd avec la définition suivante dans le fichier pom:

    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
          <plugin> 
            <groupId>com.sun.tools.xjc.maven2</groupId>  
            <artifactId>maven-jaxb-plugin</artifactId>  
            <executions> 
              <execution> 
                <goals> 
                  <goal>generate</goal> 
                </goals> 
              </execution> 
            </executions>  
            <configuration> 
              <includeSchemas> 
                <includeSchema>**/*.xsd</includeSchema> 
              </includeSchemas>  
              <includeBindings> 
                <includeBinding>**/*.xjb</includeBinding> 
              </includeBindings>  
              <strict>true</strict>  
              <verbose>true</verbose>  
              <extension>true</extension>  
              <args>-XbooleanGetterInjector -XcollectionSetterInjector -XcommonsLang</args>  
              <removeOldOutput>true</removeOldOutput> 
            </configuration> 
          </plugin>

    la pas de problème si dans les xsd pour le type boolean je les définis comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xs:attribute name="authorizedRemainder" use="required" type="xs:boolean"/>
    Si je modifie l'option de l'attribut à j'obtiens l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: method getAuthorizedRemainder() is already defined in class PdcAbstractHol
    et effectivement si on regarde la classe j'ai bien deux définition de méthode:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        public Boolean getAuthorizedRemainder() {
            return this.active;
        }
    et


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public boolean getAuthorizedRemainder() {
            if (active == null) {
                return false;
            } else {
                return active;
            }
        }


    Merci par avance de votre aide


    Bien cordialement,

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    J'avoue ça sonne une étrangeté totale.
    Je génère des classes java depuis les xsd avec la définition...
    Pour les cas ou les classes de base sont génées auto par une compilation de xsd résultant un dédoublement de méthode comme décrit est, pour moi au moins, de jamais vu. En plus, pour un attribut (ou un élément) du type xs:boolean, le générateur résulte normalement une méthode de isAuthorizedRemainder() et une setAuthorizedRemainder(...) avec un argument Boolean ou boolean selon des cas. En résultant une getAuthorizedRemainder(...), ça semble étrange déjà en lui-même...

    Je dirais monter le pom n'est pas du tout utile : il vous faut monter la partie pertinente de xsd, tous autours de l'élement (ou des éléments différents par construction schématique) contenant l'attribut authorizedRemainder, et puis le xjb si il y en a, bien probablement. Sinon, on est, je suis, complètement égaré et ne crois pas trop la fidélité de la description du problème.

Discussions similaires

  1. Réponses: 23
    Dernier message: 15/08/2008, 06h14
  2. [LINK] truc machin already defined in
    Par dubsharry dans le forum Visual C++
    Réponses: 3
    Dernier message: 25/10/2007, 18h56
  3. [W3C] problème avec "id already defined"
    Par mussara dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 05/07/2006, 01h16
  4. [Pro*C++] sqlca already defined
    Par Marthym dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2005, 14h31
  5. Réponses: 2
    Dernier message: 31/10/2005, 14h40

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