Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Web Services
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/11/2012, 10h41   #1
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
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
Citation:
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 .
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 13h03   #2
NoClassDefFound
Membre confirmé
 
Homme
Inscription : octobre 2011
Messages : 156
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 156
Points : 207
Points : 207
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
NoClassDefFound est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 15h15   #3
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
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.
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 17h26   #4
NoClassDefFound
Membre confirmé
 
Homme
Inscription : octobre 2011
Messages : 156
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : octobre 2011
Messages : 156
Points : 207
Points : 207
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.
NoClassDefFound est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2012, 08h51   #5
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
Un grand merci pour ton aide.
Je mets la discussion en résolu.
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h26.


 
 
 
 
Partenaires

Hébergement Web