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

Services Web Java Discussion :

Axis : Restriction des types dans le WSDL


Sujet :

Services Web Java

  1. #1
    Membre averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    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 averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    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 averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    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 averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    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 averti Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Points : 346
    Points
    346
    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 Services Web
    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