p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 363
    Points : 314
    Points
    314

    Par défaut Axis : Restriction des types dans le WSDL

    Bonjour à tous,

    Je travaille sur axis 1.4 actuellement avec eclipse.
    J'écrit le "corps" de mon code en java, puis je génère le wsdl. Et je travaille à partir du wsdl pour crée le vrai web service et le client.

    Dans mon wsdl j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <complexType name="THelloWorld">
        <sequence>
            <element name="HelloWorld" type="xsd:String"/>
        </sequence>
    </complexType>
    Et je suis tombé sur des wsdl qui ressemble à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        <simpleType name="HelloWrold">
            <restriction base="string">
                <length value="10"></length>
                <pattern value="[A-Z]{10}"></pattern>
            </restriction>
        </simpleType>
    Il y a d'autres options également
    length
    pattern
    maxOccurs
    minOccurs
    minLength
    maxLength
    ...
    Savez-vous comment faire pour définir ces options dans mes classes de départ sans toucher manuellement au wsdl ?

    En gros je voudrais savoir si je peux automatiser l'utilisation de "la norme xsd pour la validation de fichiers XML (W3C)" à la génération de mes WSDL .

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2011
    Messages : 204
    Points : 317
    Points
    317

    Par défaut

    Comment génères-tu la WSDL, avec la classe Java2WSDL d'axis ?
    J'avais il y a quelques temps de cela fait l'inverse, c'est à dire généré les stubs à partir de la WSDL et cela ne fonctionnait pas pour les restricitions de type maxLength, length, pattern par exemple.
    Si c'est bien de l'axis 1.x, je crois que c'est cramé

    https://issues.apache.org/jira/browse/AXIS-119

  3. #3
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 363
    Points : 314
    Points
    314

    Par défaut

    Merci pour ta réponse.
    Je le pensais aussi vu ma techno (Java 1.4 (pas d'annotation) et Axis 1.4) .
    Mais le problème c'est que mes recherches sur google ne donnent rien même pour les technos plus récentes.

    Je veux bien que pour axis 1.x se soit cramé, mais même avec les autres technos, google ne donne rien.
    Si vous avez des tutos qui vous permettent d'intégrer la norme xsd à la génération du wsdl, je veux bien.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2011
    Messages : 204
    Points : 317
    Points
    317

    Par défaut

    JAX-WS sait le faire visiblement:

    http://docs.oracle.com/cd/E19355-01/...ayk/index.html

    Je viens de faire un petit test avec axis 2, visiblement cela a l'air de fonctionner aussi vu que c'est également du JAXB qui est utilisé.
    A partir du bout de code de la wsdl suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <complexType name="User">
    	<sequence>
    		<element name="TerminalId">
    			<simpleType >  
    				 <restriction base="string">  
    							<maxLength value="32"/>
    				</restriction>  
    			</simpleType>     
    		</element>
    	        <element name="TerminalType" nillable="true" type="xsd:string"/>
    	</sequence>
    </complexType>
    Il m'a bien généré un stub axis avec la restriction sur la taille avec la commande : ./wsdl2java.sh -uri test.wsdl -p org.test d adb -s

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public void setTerminalId_type0(java.lang.String param){
    if (  (java.lang.String.valueOf(param).length() <= 32)  ) {
       this.localTerminalId_type0=param;
    }
    else {
    throw new java.lang.RuntimeException();
     }
    }
    Le code est sale mais bon, c'est de l'axis.
    J'ai généré le stub à partir de la WSDL, mais si ça fonctionne dans un sens cela devrait fonctionner dans l'autre.

  5. #5
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 363
    Points : 314
    Points
    314

    Par défaut

    Un grand merci pour ton aide.
    Je mets la discussion en résolu.

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

Discussions similaires

  1. correspondance des types dans talend
    Par projetM dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 30/12/2008, 20h07
  2. [AXIS][ANT]- nom des paramètres dans le wsdl
    Par anaon dans le forum Web Services
    Réponses: 0
    Dernier message: 15/09/2008, 10h58
  3. [RS]Restriction des données dans un rôle
    Par Reskibil dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 21/08/2007, 13h57
  4. Réponses: 2
    Dernier message: 02/12/2006, 21h58

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