Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre confirmé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 346
    Points : 270
    Points
    270

    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 :
    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 :
    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 confirmé
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2011
    Messages : 194
    Points : 265
    Points
    265

    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 confirmé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 346
    Points : 270
    Points
    270

    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 confirmé
    Homme Profil pro
    Inscrit en
    octobre 2011
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2011
    Messages : 194
    Points : 265
    Points
    265

    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 :
    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 :
    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 confirmé Avatar de rockley
    Homme Profil pro
    Inscrit en
    décembre 2010
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Arménie

    Informations forums :
    Inscription : décembre 2010
    Messages : 346
    Points : 270
    Points
    270

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •