« wsdl » Feed

6c4a91744a9f857f00ddd8802edb7465

Web Services, JAX-WS et intéropérabilité (partie 1)

2010-10-21 11:29

Write comment

J'ai effectué au cours de mon expérience, une implémentation assez compliqué d'un web service à l'aide de JAX-WS.

Le besoin initial étant d'exporter une méthode avec un métier très simple en un webservice et avec un document WSDL correct et surtout interopérable (Document/Literal wrapped)!

Le défit à relver est d'arriver à générer ce WSDL à partir du code avec des types complexes en entrée et en sortie.

Je vais essayer tout au long de cet article de vous proposer un petit exemple qui résumera quasiment toutes les difficultés qu'on pourrait rencontrer dans ce type de projets (Les valeurs requises, les énumérations, les exceptions, les headers, les types d'entrée et de retour complexes). Vous êtes prêts ?

C’est parti !

Read more…

6c4a91744a9f857f00ddd8802edb7465

Web Services, JAX-WS et intéropérabilité (partie 2)

2010-10-21 11:29

Write comment

Pour un HashMap clé/valeur, le XSD correct ne peut être généré par JAX-WS qu'en écrivant une classe Java représentant le type clé/valeur constituant ce HashMap.

Cette deuxième partie expliquera comment faire pour gérer ce genre de types en passant par des annotations JAXB.

Ci-dessous une classe MonTypeDeRetour représentant l'objet qui sera retourné par mon webservice:

 @XmlAccessorType(XmlAccessType.FIELD)
@XmlType (name = "MonTypeDeRetour", propOrder = {"key","value"})
public class MonTypeDeRetour {

    @XmlElement(name="return",required = true)
    protected Object key;

    @XmlElement(name="return1",required = true)
    protected Object value;

    public MonTypeDeRetour() {
    }

    public Object getKey() {
        return key;
    }

    public void setKey(Object value) {
        this.key = value;
    }

    public Object getValue() {
        return value;
    }

    public void setValue(Object value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return "Table["+this.getKey()+"]="+this.getValue();
    }
} 
Voila maintenant nous avons un type de retour bien définit reconnaissable par JAX-WS, on va maintenant retoucher notre web service pour préciser le nouveau type de retour de celui-ci.

Voici le nouveau code source du web service :

Read more…

 Nbre d'élements: 2/
2