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 :

Setter pour liste avec JAXB


Sujet :

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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Points : 19
    Points
    19
    Par défaut Setter pour liste avec JAXB
    Bonjour,
    Je souhaiterai créer le setter d'une liste avec JAXB.
    Par défaut il n'y a que le getter qui est créé.
    Afin que le setter soit créé j'utilise -Xcollection-setter-injector.
    Je me suis inspiré de http://hugo.developpez.com/tutoriels...eb-avec-maven/

    Le pom.xml que j'ai créé est le suivant :
    Code XML : 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
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
     
      <groupId>essai1</groupId>
      <artifactId>essai1</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>jar</packaging>
     
      <name>essai1</name>
      <url>http://maven.apache.org</url>
     
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
     
      	<build>
      		<plugins>
     
            	<plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>0.8.3</version>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                            <configuration>
                            <args>
                            	<arg>-Xcollection-setter-injector</arg>
                            </args>
     
                            	<schemaDirectory>src/main/here</schemaDirectory>
                        		<generatePackage>ws</generatePackage>
                        		<includeSchema>${basedir}/src/main/here/essai1.xsd</includeSchema>                                                  
                            </configuration>
                        </execution>
                    </executions>
                </plugin>   
              </plugins>
             </build>
    </project>

    Avec l'erreur paramètre -Xcollection-setter-injector non reconnu

    Auriez-vous des idées ?

    PS : Voici le XSD
    Code XML : 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
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <xs:schema elementFormDefault="qualified" version="1.0"
        targetNamespace="http://www.developpez.com/hugo/model" 
        xmlns:tns="http://www.developpez.com/hugo/model" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
     
      <xs:element name="msgBody">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Contato" maxOccurs="unbounded" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element type="xs:int" name="cdEndereco"/>
                  <xs:element type="xs:int" name="cdBairro"/>
                  <xs:element type="xs:string" name="email"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

  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
    Pour faire une injection de setter, il faut bien entendu fournir quelque extension plugin faite pour le but dans la partie configuration. C'est totalement manqué.
    Il y avait une fois un projet de la communauté qui s'appelle net.java.dev.vcc.thirdparty qui devient un peu obscur. Plus à jour, on peut profiter le projet d'org.andromda.thirdparty.jaxb2_commons qui a K Kawaguchi et A Valikov comme développeurs. Avec eux comme développeurs ajoute un peu plus de crédibilité, on peut discuter ça aussi. En tout cas ce projet s'est fait disponible à mvnrepository.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- https://mvnrepository.com/artifact/org.andromda.thirdparty.jaxb2_commons/collection-setter-injector -->
    <dependency>
        <groupId>org.andromda.thirdparty.jaxb2_commons</groupId>
        <artifactId>collection-setter-injector</artifactId>
        <version>1.0</version>
    </dependency>
    Je peux dire avec confiance que à cause une rupture du développement, notamment sur le placement de la classe Aspect.class et la compatibilité de ses méthodes, on a besoin d'ajouter une dépendance de jaxb-xjc mais, attention, pas trop à jour - plus précisément la version 2.2.10 au maximum.

    Avec tous ces éléments réunis, on peut faire comme ça. (Je réfère une version de maven-jaxb2-plugin un peu plus à jour.)
    Code xml : 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
    <build>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.13.1</version>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <args>
                                <arg>-Xcollection-setter-injector</arg>
                            </args>
                            <schemaDirectory>src/main/here</schemaDirectory>
                            <generatePackage>ws</generatePackage>
                            <includeSchema>${basedir}/src/main/here/essai1.xsd</includeSchema>                                                  
                            <plugins>
                                <plugin>
                                    <groupId>org.andromda.thirdparty.jaxb2_commons</groupId>
                                    <artifactId>collection-setter-injector</artifactId>
                                    <version>1.0</version>
                                </plugin>
                            </plugins>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>org.glassfish.jaxb</groupId>
                                <artifactId>jaxb-xjc</artifactId>
                                <version>2.2.10</version>
                            </dependency>
                        </dependencies>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    On devrait arriver à injecter le setter avec.

Discussions similaires

  1. [SP-2010] Récupérer les GroupID avec xslt pour listes personnalisées
    Par Clebit dans le forum SharePoint
    Réponses: 1
    Dernier message: 23/08/2011, 09h10
  2. Composant pour afficher une liste avec un index
    Par zuzuu dans le forum AWT/Swing
    Réponses: 0
    Dernier message: 22/04/2009, 12h11
  3. Réponses: 1
    Dernier message: 19/06/2008, 21h05
  4. ajout d'une description pour des fichiers listes avec apache
    Par deny dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 31/10/2007, 10h16
  5. [AJAX] Liste avec si select "autre" ouvre un div pour ajouter option
    Par gandalf76fr dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/11/2006, 15h24

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